所以我做了一个程序,我可以用06h功能改变背景颜色。我试着在延迟和循环之后放置一个字符串,当我仍然没有放置任何可以使文本移动到任何地方的代码时,我不明白为什么字符串向右移动。有人可以向我解释一下吗?感谢。
LOOPS:
MOV AH, 06h ; Scroll up function
XOR AL, AL ; Clear entire screen
XOR CX, CX ; Upper left corner CH=row, CL=column
MOV DX, 184FH ; lower right corner DH=row, DL=column
MOV BH, 1Eh ; YellowOnBlue
INT 10H
MOV AH, 9
MOV DX, OUTPUT
INT 21H
CALL DELAY
JMP LOOPS
DELAY:
*some codes*
OUTPUT DB 'HELLO', 24H
答案 0 :(得分:0)
如果preserve和restore光标围绕DOS调用,您可以轻松地继续使用DOS输出功能并且仍然在同一位置显示文本。
mov bh, 0 ;Display page 0
mov ah, 03h ;Get Cursor
int 10h ;BIOS returns the cursor position in DX (Shape in CX)
push dx ;Save on stack
MOV AH, 9
MOV DX, OUTPUT
INT 21H
pop dx ;Restore from stack
mov bh, 0 ;Display page 0
mov ah, 02h ;Set Cursor
int 10h
CALL DELAY
JMP LOOPS