汇编语言子函数——将字符串的小写字母转换为大写字母

时间:2022-06-26 01:25:27

这里利用汇编标志位,和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

运行结果如下:

汇编语言子函数——将字符串的小写字母转换为大写字母