打开记事本——》alt+右边的小键盘(可以查看ASCII对应的字符)
eg:打开记事本——》按住alt键,并在右边小键盘打97,松开alt,可以看到出现a——》得知97对应的字符为a
上图中绿色的横行和纵行组成对应字符的十六进制
通过对比大写字母的ASCII码的值比小写字母小20H : ASCII(a)-20H=ASCII(A)
通过观察还可以得出大小写的差距字体现在二进制的第五位
案例:编写一段代码,将datasg中第一个字符串全转化为大写,第二个字符串全转化为小写
assume cs:codesg,ds:datasg
datasg segment
db 'BaSiC' ;将第一个字符串全部转换为大写
;注意单引号(表明数据是以字符的形式给出的)define byte
db 'iNfOrMaTiOn';将第二个字符串全部转换为小写
datasg ends
codesg segment
start: mov ax,datasg
mov 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 upLetter
mov 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],al
inc bx
loop downLetter
mov ax,ac00h
int 21h
codesg ends
end start