实例:将以0结束的字符串中的小写字母转变成大写字母
assume cs:code,ds:data
data segment
db "Beginner's All-purpose Symbolic Instruction Code.",0 ;双引号??
data ends
;将以0结束的字符串中的小写字母转变成大写字母
;参数:ds:si指向字符串首地址
code segment
start: mov ax,data
mov ds,ax
mov si,0
call letterc
mov ax,4c00h
int 21h
letterc: push ax ;寄存器入栈
s: mov al,[si] ;从内存中读取字符
cmp al,0
je ok ;若为0则结束子程序
cmp al,61h
jb next ;若小于a,则next
cmp al,7ah
ja next ;若大于z,则next
sub al,20h
mov [si],al ;将小写字母减20h,变为大写写到内存中
next: inc si
jmp short s ;读取下一个字符
ok: pop ax ;寄存器出栈
ret
code ends
end start