例8.3 用“霓虹灯”的显示方式显示字符串“Hello”,按ESC键时结束程序的运行。

解:我们用显示颜色的变化来模拟霓虹灯的显示方式,即用颜色15(亮白)作为字符的主要显示颜色,再用颜色12(亮红)从左到右逐个扫描。

.MODEL SMALL, C
.DATA
 KBEsc EQU 1BH
 BUFF DB "H", 15, "e", 15, "l", 15, "l", 15, "o", 15
.CODE
Clear PROC Near Uses AX BX CX DX ;清屏幕,并保护所用寄存器
MOV CL, 0
MOV CH, 0
MOV DL, 79
MOV DH, 24 ;(0,0)-(24,79)是屏幕的左上角和右下角
MOV BH, 7
MOV AL, 0
MOV AH, 6
INT 10H
RET
Clear ENDP
.STARTUP
CALL Clear
MOV AX, DS
MOV ES, AX
MOV SI, 9
again:
MOV BUFF[SI], 15 ;把前一次的红色还原
ADD SI, 2
.IF  SI > 9
  MOV SI, 1
.ENDIF
MOV BUFF[SI], 12 ;把当前字符以红色显示
MOV BH, 0
MOV CX, 5
MOV DH, 5
MOV DL, 20 ;显示位置从(5, 20)开始
LEA BP, BUFF
MOV AL, 2
MOV AH, 13H
INT 10H ;调用中断10H之功能13H
MOV AH, 1
INT 16H ;检查是否有按键
JZ again ;若无字符可读,则继续循环
MOV AH, 0
INT 16H
CMP AL, KBEsc
JNZ again ;若按键不是Escape,则继续循环
.EXIT 0
END

关 闭