;名称:letterc
;功能:将以0结尾的字符串中的小写字母转变成大写字母
;参数:ds:si指向字符串首地址
letterc: ;子程序开始
push ax
push si
pushf
mov ax,0
push ax
popf ;标志位置0
letterc_0:mov al,ds:[si] ;取字符
cmp al,0
je letterc_ok ;如果内存中为0,转到子程序结束
cmp al,61h ;61H是a的ASCII码
jb letterc_1 ;如果字符小于61H,证明不是字母,则转移
cmp al,7aH ;7aH是z的ASCII码
ja letterc_1 ;如果字符大于7aH,证明不是字母,则转移
and al,11011111b ;转小写为大写
mov ds:[si],al ;将转变后的大写字母写入原单元
letterc_1:inc si ;取下一个字符
jmp short letterc_0 ;转到标号,继续取值
letterc_ok:popf
pop si
pop ax
ret ;子程序结束