求汇编大小写字母转换

超级无敌简单,只要单个字母转换,不用输入的,不要什么循环
顺便解释下MOV AH,09H和MOV AH,02H区别?
把原代码写出来嘛~~谢谢,完整的哦

第1个回答  2009-11-30
大写转小写:
OR AL,20H
OR BYTE PTR [BX],20H
小写转大写:
AND AL,0DFH
AND BYTE PTR [BX],0DFH
大小写切换:
XOR AL,20H
XOR BYTE PTR [BX],20H

MOV AH,09H和MOV AH,02H仅是传送的立即数不同,
第2个回答  2009-11-30
; 本程序在MASMPlus 1.2集成环境下通过编译,经过调试,运行正确。
Code Segment
Assume CS:Code,DS:Code
Letter db 'aB'
Press_Key db 7,13,10,13,10,'The complated. Press any key to exit...$'
Start: push cs
pop ds
mov dl,Letter ;小写字母'a'
mov ah,2 ;显示字符
int 21h
and dl,0dbh ;第一个字母小写转大写
mov Letter,dl ;保存转换后的字母
int 21h ;显示转换后的字母
mov dl,20h ;空一格
int 21h
mov dl,Letter[1] ;大写字母'B'
int 21h
or dl,20h ;第二个字母大写转小写
mov Letter[1],dl ;保存转换后的字母
int 21h
mov dl,20h ;空一格
int 21h
mov dl,Letter ;大写字母'A'
int 21h
xor dl,20h ;大写转小写
mov Letter,dl ;保存转换后的字母
int 21h
mov dl,20h ;空一格
int 21h
mov dl,Letter[1] ;小写字母'b'
int 21h
xor dl,20h ;大写转小写
mov Letter[1],dl ;保存转换后的字母
int 21h
Exit_Proc: lea dx,Press_Key ;提示操作完成,按任意键结束程序
mov ah,9 ;显示字符串
int 21h
mov ah,1
int 21h
mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束
第3个回答  2009-11-29
直接把大小写字母的值+32或者-32就可以了

09H和02H是不同的dos中断本回答被提问者采纳
第4个回答  2009-12-01
日 你理工大计科院的吧
相似回答