这里利用汇编标志位,和cmp比较指令实现对大小写的转换
下面是一段代码,主要的功能就是写一个子函数,可以实现对字符串的小写字母转换为大写字母
如下:
assume cs:code, ds:data
data segment
db "Welcome to masm!", 0
data ends
code segment
start:mov ax, data
mov ds, ax
call letterc ;调用子函数
mov ax, 4C00H
int 21H
letterc:push ax
push bx
push cx
push si
push di
push bp
push dx
push ds
mov si, 0
s:mov al, ds:[si]
mov cl, ds:[si]
mov ch, 0
jcxz ed ;如果字符串检测到零时,结束循环,跳到ed处
cmp al, 97 ;如果<97 >122 那么就不转换
jb ok
cmp al, 122
ja ok
sub al, 32 ;如果>97 <122 那么就转换为大写字母
mov ds:[si], al
mov ax, 0
ok:inc si
jmp s
ed:pop ds
pop dx
pop bp
pop di
pop si
pop cx
pop bx
pop ax
ret
code ends
end start
运行结果如下: