再会!我是汇编语言的新手,我正在尝试打印一个带有颜色的简单“Hello World”。它可以工作,但是当我现在添加时,例如,13, 10
它不会显示回车换行,而是显示其他字符(音符和圆圈)。这是我的代码:
.MODEL SMALL
.DATA
.stack
hello db 13,10,'Hello World'
db 13,10,' ##### ',0 ; there are spaces
ROW1 DB 12
COL DB 20
.CODE
.STARTUP
MOV AL, 3 ; 80x25 color
INT 10H ; video BIOS call
MOV AH, 2 ; set cursor position
MOV BH, 0 ; display page number
mov bl,2
MOV DH, ROW1 ; row number
MOV DL, COL ; column number
INT 10H ; video BIOS call
CALL FAR PTR DISP ; display first line of video text
.EXIT
DISP PROC FAR
MOV SI, 0 ; set up array pointer
NEXT: MOV AL, hello[SI]; get name character
CMP AL, 0 ; exit if character is 0
JZ EXIT
MOV BH, 0 ; display page number
MOV BL, [BP+SI] ; get attribute
MOV CX, 1 ; do 1 character
MOV AH, 9 ; write character/attribute on screen
INT 10H ; video BIOS call
INC SI ; point to next character/attribute
ADD DL, 1 ; move two columns to the right
MOV AH, 2 ; set cursor position
INT 10H ; video BIOS call
JMP NEXT ; and continue
EXIT: RET
DISP ENDP
END
请帮我修复代码,以便在控制台中看到变量中写入的hello
内容。另外,我怎样才能摆脱闪烁的颜色?我刚刚在互联网上获得了一个颜色列表,但是当我在这里输入它时,它会闪烁(mov bl, 2
呈绿色但它会闪烁)。