;编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母
;功能:将以0结尾的字符串中的小写字母转变成大写字母
;参数:ds:si只想字符串首地址
;注意:需要进行转化的是字符串中的小写字母'a'~'z',而不是其他字符
assume cs:codedata segmentdb "Beginner's All-purpose Symbolic Instruction Code.", 0 data endscode segment start:mov ax, datamov ds, axmov si, 0call lettercmov ax, 4c00hint 21hletterc:push axpush cxpush sibegin: mov ch, 0mov cl, [si]jcxz endstr ;if(cl=0){jmp short endstr} ;判断 第三ds:[si] 是否为a~bmov al, 61hcmp cl, aljb reset ;ds:[si] 的ASCII < a的ASCIImov al, 7ahcmp cl, alja reset ;ds:[si] 的ASCII > z的ASCII;执行到这里来了说明 是在 a~z 之间;A[0100 0001] a[0110 0001]mov al, 11011111band cl, almov [si], cl ;转换大写后写回内存reset: inc sijmp short beginendstr: pop sipop cxpop axret code ends end start