欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

汇编语言之大小写转换问题

发布时间:2025/3/15 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 汇编语言之大小写转换问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

打开记事本——》alt+右边的小键盘(可以查看ASCII对应的字符)
eg:打开记事本——》按住alt键,并在右边小键盘打97,松开alt,可以看到出现a——》得知97对应的字符为a

上图中绿色的横行和纵行组成对应字符的十六进制

通过对比大写字母的ASCII码的值比小写字母小20H : ASCII(a)-20H=ASCII(A)
通过观察还可以得出大小写的差距字体现在二进制的第五位

案例:编写一段代码,将datasg中第一个字符串全转化为大写,第二个字符串全转化为小写

assume cs:codesg,ds:datasg datasg segmentdb 'BaSiC' ;将第一个字符串全部转换为大写;注意单引号(表明数据是以字符的形式给出的)define bytedb 'iNfOrMaTiOn';将第二个字符串全部转换为小写 datasg endscodesg segment start: mov ax,datasgmov ds,ax ;设置ds指向datasg段mov bx,0 ;设置(bx)=0,ds:bx指向 'BaSiC'的第一个字母mov cx,5 ;设置循环次数5,因为 'BaSiC'有五个字母upLetter:mov al,ds:[bx] ;将ASCII码从ds:bx所指向的单元中取出and al,11011111B ;将al中的ASCII的第5位为0,变成大写字母mov ds:[bx],al ;将转变后的ASCII码写回原单元inc bx ;bx+1,ds:bx指向下一个字母loop upLettermov bx,5 ;设置bx=5,ds:bx指向 'iNfOrMaTiOn'的第一个字母mov cx,11 ;循环11次,因为 'iNfOrMaTiOn'有11个字母downLetter:mov al,ds:[bx]or al,00100000B ;将al中的ASCII码的第五位置变成1,变为小写字母mov [bx],alinc bxloop downLettermov ax,ac00hint 21hcodesg ends end start

总结

以上是生活随笔为你收集整理的汇编语言之大小写转换问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。