在汇编语言中,要实现大小写字母的转换,我们得先分析一下大写字母和小写字母的ASCII码,通过比较可以发现,大写字母和小写字母之间二进制的区别就是第6位1还是0,如果是大写字母第6位为0,如果是小写字母,第6位则为1,举个例子:A的二进制表示为:0100 0001,a的二进制表示为:0110 0001,通过对比可以发现,它们的区别就是第六位是一还是0。大写字母的第六位为0,小写字母的第六位为1。知道这个就好办了:
如果要转换成大写字母,则使用and指令把ASCII码的第6位置0;
and al,11011111B
如果要转换成小写字母,则使用or指令把ASCII码的第6为置1。
or al,00100000B
下面把程序中给出的三个字符串的小写字母转换为大写字母:
汇编代码
1 | assume cs:codesg,ds:datasg,ss:stacksg |
这样就实现了汇编中的大小写字母的转换。