汇编字符颜色的改变求助,怎么修改改变字符颜色呢,自己试的修改没有效果

ArronSun 2018-01-10 09:56:31
DATAS SEGMENT
cury db 15;光标初始位置
curx db 50
lx db 10;记录左窗口当前光标位置,初始化为左窗口初始位置
ly db 15
rx db 50;记录右窗口当前光标位置,初始化为右窗口初始位置
ry db 15
dwx db 15;记录下窗口当前光标位置,初始化为下窗口初始位置
dwy db 22
ulrow db 0
ulcol db 0
lrrow db 0
lrcol db 0
windownum db 1
;此处输入数据段代码
DATAS ENDS
;宏指令clear清屏
clear macro a,b,c,d
mov al,6;初始化窗口
mov bh,7;卷入行属性
mov ch,a;左上角行号
mov cl,b;左上角列号
mov dh,c;右下角行号
mov dl,d;右下角列号
mov ah,7
int 10h;BIOS调用,屏幕初始化
endm
;宏指令scroll向上卷动一行
scroll macro cont,ulrow,ulcol,lrrow,lrcol
mov al,cont;上卷行数
mov bh,12h;卷入行属性
mov ch,ulrow;左上角行号
mov cl,ulcol;左上角列号
mov dh,lrrow;右下角行号
mov dl,lrcol;右下角列号
mov ah,6
int 10h;BIOS调用,上卷
endm
;宏指令postc光标定位
postc macro y,x
mov bh,0;页号
mov dh,y;行
mov dl,x;列
mov ah,2
int 10h;BIOS调用,置光标位置
endm
;在当前窗口和下窗口显示
display macro
mov bh,0
mov cx,1
mov ah,0ah;在当前的窗口打印字符
int 10h
postc dwy,dwx
mov bh,0
mov cx,1
mov ah,0ah;在下窗口打印
int 10h
endm
;接收字符并判断
getchar macro
input:;输入键盘上的字符
mov ah,0
int 16h;BOIS调用,从键盘读字符

cmp ah,4bh;判断输入字符是否为左向键
jnz no_left
postc ly,lx
mov windownum,2
jmp input


;DEL:
; mov ah,03h
; int 10h
; dec dwx
; push dx
; scroll dh,dl,dh,dl,0
; pop dx
; postc dh,dl
; mov ry,dl
; jmp input


no_left:
cmp ah,4dh
jnz no_right;判断输入字符是否为右向键
postc ry,rx
mov windownum,1
jmp input
no_right:
cmp ah,01;判断输入字符是否为ESC
jz exit

display;嵌套调用
inc dwx
cmp dwx,65;判断下窗口是否上卷
jle isright
scroll 1,19,15,22,65
mov dwx,15
isright:
cmp windownum,1;判断是否在右窗口
jnz displeft
dispright:;判断下窗口是否上卷
inc rx
cmp rx,70
jle rightexit
scroll 1,6,50,15,70
mov rx,50
rightexit:;右窗口输出
postc ry,rx
jmp input
displeft:;判断左窗口是否上卷
inc lx
cmp lx,30
jle leftexit
scroll 1,6,10,15,30
mov lx,10
leftexit:;左窗口输出
postc ly,lx
jmp input
exit:
endm

STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX

; mov ah,0bh
; mov bx,7985h;设定颜色为绿色
;int 10h

main proc far
push ds
sub ax,ax
push ax
mov ax,datas
mov ds,ax



clear 0,0,24,79
scroll 10,5,10,15,30
scroll 10,5,50,15,70
scroll 4,18,15,12,65
postc cury,curx
getchar
ret
main endp ;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START


...全文
1299 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2018-01-10
  • 打赏
  • 举报
回复
滚屏 scroll 宏里的 BH 是属性吧,包括字符颜色和背景色

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧