编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母,描述如下。
名称:letterc
功能:将以0结尾的字符串中的小写字母转变成大写字母
参数:dsai指向字符串首地址
assume cs:code, ds:data data segment crlf db 0ah, 0dh, '$' target db "Beginner's All-purpose Symbolic Instruction Code.$", 0 data ends code segment start: mov ax, data mov ds, ax lea si, target lea dx, target ;输出改变前的字符串 call print call letterc lea dx, target ;输出改变后的字符串 call print mov ax, 4c00h int 21h letterc: mov bx, 0 mov cx, 0 s: cmp byte ptr ds:[si+bx], 'a' jb nottocap ;低于则转移 cmp byte ptr ds:[si+bx], 'z' ja nottocap ;高于则转移 and byte ptr ds:[si+bx], 01011111b nottocap: inc bx mov cl, ds:[si+bx] jcxz s1 ;若为0则跳出 jmp s s1: ret print: mov ah, 9h int 21h lea dx, crlf int 21h ret code ends end start
注意需要进行转化的是字符串中的小写字母a}z,而不是其他字符。