使用栈暂存数据解决寄存器冲突
assume cs:code
data segment
db 'word',0
db 'unix',0
db 'wind',0
db 'good',0
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
mov cx,4
s:
call capital
add si,5
loop s
mov ax,4c00h
int 21h
;说明:将一个全是字母,以0结尾的字符串,转为大写
;参数:ds:si指向字符串的首地址
;结果:没有返回值
capital:
push cx
push si
change:
mov cl,[si]
mov ch,0
jcxz ok
and byte ptr [si],11011111B
inc si
jmp short change
ok:
pop si
pop cx
ret
code ends
end start