注册 登录
编程论坛 汇编论坛

小写字母转换成大写字母后输出显示,输入“$”字符结束问题?

水浙江雪 发布于 2015-01-12 15:55, 4822 次点击
下面程序段利用DOS系统功能调用,完成将键盘输入的小写字母转换成大写字母后输出显示,直到输入“$”字符结束
  BEGIN:
        MOV   AH,01H
        INT   21H
        (1) CMP  AL,’$’           
        JZ    STOP
        CMP   AL,‘a’
        JB    STOP
        CMP   AL, ‘z’
        JA    STOP
        (2)  SUB  AL,20H         
        (3)   MOV  DL,AL       
        MOV   AH,02H
        INT   21H
        JMP   BEGIN
STOP: MOV   AH,4CH
        INT   21H
不清楚(1)是什么意思,还有就是(3)中为什么要用DL?
2 回复
#2
取名字2015-04-28 15:04
(1)CMP AL,“$”
这句代码是在调用了DOS的INT 21H中断例程的01H功能后(该功能从键盘接收一个字符,并将字符的ASCII码存放在AL中)将存放在AL中的字符与“$”进行比较,相等就结束,不相等就继续;
(2)MOV DL,AL
这句代码是根据后面调用的INT 21H中断例程的02H功能的要求(该功能显示一个字符,但要求被显示的字符放入DL中)将要显示的字符存入DL中。
以上分析希望能够帮到楼主!
1