English Sentence Loading...
英语句子加载中...
汇编小写字母转大写字母
作者:junyuqin 日期:2007-06-18
BEGIN:MOV AH,1
INT 21H
CMP AL,’a’
JB STOP
CMP AL,’z’
JA STOP
SUB AL,20H
MOV DL,AL
MOV AH,2
INT 21H
JMP BEGIN
STOP:RET
[解析] 1)该程序设计的主体应是一个循环——当输入字符的是小写字母(a ~ z)时,就将其转换为大写字母来显示,此过程循环进行,直到当输入的不是小写字母时,程序结束。
2)输入一个字符的可使用DOS的1号功能实现:
MOV AH, 1
INT 21H
该DOS调用执行完后,会将输入的字符的ASCII码值送入AL寄存器。
3)判断输入的是否为小写字母(a ~ z)的方法:
CMP AL, ‘a’
JB STOP ;不是小写字母时,转STOP
CMP AL, ‘z’
JA STOP ;不是小写字母时,转STOP
… ;是小写字母时,将其转换为大写显示
STOP: RET ;不是小写字母时,程序结束
4)小写字母比大写字母的ASCII码值大20H,因此指令 SUB AL, 20H,将使AL中的内容变为大写字母的ASCII码值。
5)输出一个字符的可使用DOS的2号功能实现:
MOV DL, AL
MOV AH, 2
INT 21H
INT 21H
CMP AL,’a’
JB STOP
CMP AL,’z’
JA STOP
SUB AL,20H
MOV DL,AL
MOV AH,2
INT 21H
JMP BEGIN
STOP:RET
[解析] 1)该程序设计的主体应是一个循环——当输入字符的是小写字母(a ~ z)时,就将其转换为大写字母来显示,此过程循环进行,直到当输入的不是小写字母时,程序结束。
2)输入一个字符的可使用DOS的1号功能实现:
MOV AH, 1
INT 21H
该DOS调用执行完后,会将输入的字符的ASCII码值送入AL寄存器。
3)判断输入的是否为小写字母(a ~ z)的方法:
CMP AL, ‘a’
JB STOP ;不是小写字母时,转STOP
CMP AL, ‘z’
JA STOP ;不是小写字母时,转STOP
… ;是小写字母时,将其转换为大写显示
STOP: RET ;不是小写字母时,程序结束
4)小写字母比大写字母的ASCII码值大20H,因此指令 SUB AL, 20H,将使AL中的内容变为大写字母的ASCII码值。
5)输出一个字符的可使用DOS的2号功能实现:
MOV DL, AL
MOV AH, 2
INT 21H
评论: 0 | 引用: 0 | 查看次数: 3874