题目:编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母。 分析:这里的关键是要知道小写字母的范围是[97,122]。然后做好判断就行了。 assume cs:codesg datasg segment db "Beginner's All-purpose Symbolic Instruction Code.",0 datasg ends codesg segment start: mov ax,datasg mov ds,ax mov si,0 call letterc mov ax,4c00h int 21h letterc: mov cx,0 mov ax,0 do: mov al,ds:[si] mov cx,ax jcxz doover cmp al,97 jb next cmp al,122 ja next and al,11011111b mov ds:[si],al next: inc si jmp short do doover: call show_str ret show_str: mov cl,0a0h mov ax,0b800h mov es,ax mov si,0 mov di,0 mov ax,0 mov dx,0 show:mov dx, cx mov al,ds:[si] mov cx,ax jcxz ok mov cx,dx mov ah,cl mov word ptr es:[di],ax mov ax,0 inc si add di,2 jmp short show ok: ret codesg ends end start