装配:使用输出字符串更改背景和前景色

时间:2018-03-13 01:50:54

标签: assembly fasm

所以我做了一个程序,我可以用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

1 个答案:

答案 0 :(得分:0)

如果preserverestore光标围绕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