;編寫一個子程序,將包含任意字符,以0結尾的字符串中的小寫字母轉變成大寫字母
;功能:將以0結尾的字符串中的小寫字母轉變成大寫字母
;參數:ds:si只想字符串首地址
;注意:需要進行轉化的是字符串中的小寫字母'a'~'z',而不是其他字符
assume cs:code data segment db "Beginner's All-purpose Symbolic Instruction Code.", 0 data ends code segment start: mov ax, data mov ds, ax mov si, 0 call letterc mov ax, 4c00h int 21h letterc: push ax push cx push si begin: mov ch, 0 mov cl, [si] jcxz endstr ;if(cl=0){jmp short endstr} ;判斷 第三ds:[si] 是否為a~b mov al, 61h cmp cl, al jb reset ;ds:[si] 的ASCII < a的ASCII mov al, 7ah cmp cl, al ja reset ;ds:[si] 的ASCII > z的ASCII ;執行到這里來了說明 是在 a~z 之間 ;A[0100 0001] a[0110 0001] mov al, 11011111b and cl, al mov [si], cl ;轉換大寫后寫回內存 reset: inc si jmp short begin endstr: pop si pop cx pop ax ret code ends end start