汇编语言注释

tianyaxiaozhuo 2011-06-23 02:55:58
.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

这个是要实现用汇编语言编写:“霓虹灯”方式显示字体 按下1键,从左至右霓虹灯显示hello;按下2键,从右至左霓虹灯显示hello;按下Esc键,结束程序。
但是部分程序看不懂,拜托高手给写点注释上去,然后我在看看。谢谢
...全文
433 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeanwu 2011-06-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 tianyaxiaozhuo 的回复:]
.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 D……
[/Quote]



.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 ; SI指向BUFF数组的最后一个字节
again:
MOV BUFF[SI], 15 ; 把前一次的红色还原
ADD SI, 2 ; SI加2, 指向下一个字符的属性
.IF SI > 9
  MOV SI, 1 ; 若SI>9, 超过数组的上界, 则绕回到数组的第一个字符的属性
.ENDIF
MOV BUFF[SI], 12 ; 把当前字符以红色显示
MOV BH, 0 ; BH为页码
MOV CX, 5 ; CX为显示字符串的长度
MOV DH, 5
MOV DL, 20 ; 显示位置从(5, 20)开始
LEA BP, BUFF ; BP指向字符串
MOV AL, 2 ; AL为显示输出方式, 2表示字符串中含显示字符和显示属性, 显示后, 光标位置不变
MOV AH, 13H
INT 10H ; 调用中断10H之功能13H
MOV AH, 1 ; AH=1, 读取键盘状态, ZF=1无字符输入, 否则, AH=键盘的扫描码, AL=ASCII码
INT 16H ; 检查是否有按键
JZ again ; 若无字符可读,则继续循环
MOV AH, 0 ; AH=0, 从键盘读入字符
INT 16H ; AH=键盘的扫描码, AL=ASCII码
CMP AL, KBEsc ; 比较AL是否为KBESC
JNZ again ; 若按键不是Escape,则继续循环
.EXIT 0
END

Proteas 2011-06-24
  • 打赏
  • 举报
回复
涉及到一些地址与端口,与硬件规格相关。
canmeng 2011-06-23
  • 打赏
  • 举报
回复
楼主为什么不把什么地方不懂标记出来呢
masmaster 2011-06-23
  • 打赏
  • 举报
回复
学习!!!

21,458

社区成员

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

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