编写一个子程序,将包含任意字符,以0结尾的字符串中的小写转大写
首先先用不是子程序的方法来解决一下:
assume cs:code
data segment
db "ZouZeBin is a handsome boy!!",0
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
s:
mov al,[si]
cmp al,0
je ok
cmp al,'A'
jb next
cmp al,'z'
ja next
cmp al,'Z'
ja ltoh
or byte ptr [si],00100000b
jmp short next
ltoh:
and byte ptr [si],11011111b
next:
inc si
jmp short s
ok:
mov ax,4c00h
int 21h
code ends
end start
截图:
接下来实现一种用子程序来解决的方法:
assume cs:code
data segment
db "ZouZeBin is a handsome boy!!",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 ds
push si
s:
mov al,[si]
cmp al,0
je ok
cmp al,'A'
jb next
cmp al,'z'
ja next
cmp al,'Z'
ja ltoh
or byte ptr [si],00100000b
jmp short next
ltoh:
and byte ptr [si],11011111b
next:
inc si
jmp short s
ok:
pop si
pop ds
pop ax
ret
code ends
end start
截图: