实验11
第一次发表文章,试一试
assume cs:code
data segment
db "Beginner's All-purpose Symbolic Instruction Code.",0
data ends
stack segment
db 16 dup (0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov si,0 ;data地址
mov ax,stack
mov ss,ax
mov sp,16
mov ax,0
call letterc ;大小写转换
mov ax, 4c00h
int 21h
;名称:letterc
;功能:将以0结尾的字符串中的小写字母转变为大写字母
;参数:ds:si指向字符串首地址
letterc: ;保护现场
push ax
push bx
push cx
push dx
;符合范围转换,小写范围为:97~122
s: mov cx,[si]
jcxz ok
mov al,[si]
cmp al,97 ;低于97转next
jb s0
cmp al,122 ;高于122转next
ja s0
and al,11011111b
mov ds:[si],al ;转换成功的字符保存
jmp short s0
s0: inc si ;下一个
jmp short s
ok: pop dx
pop cx
pop bx
pop ax
ret
code ends
end start