.model small
.stack 100h
.data
buf label byte
max_len db 255
str_len db 0
str_buf db 256 dup(0)
.code
main proc
mov ax, @data ;初始化数据段
mov ds, ax
mov es, ax
mov ah, 0ah ;键盘输入
lea dx, buf ;缓冲区 DS:DX=buf
int 21h
mov ah, 02h ;回车换行
mov dl, 0dh
int 21h
mov dl, 0ah
int 21h
lea si, str_buf ;获取输入字符串地址
mov di, si
mov dx, si ;保存DX中,用于INT21 09号功能显示字符串
mov bl, byte ptr [str_len] ;获取输入字符串长度
xor bh, bh
mov byte ptr [bx][si], '$' ;在字符串末尾添加一个 '$',用于用于INT21 09号功能显示字符串终止符
mov cx, bx ;获取字符串长度,控制循环次数
cld
@@1:
lodsb
cmp al, 'A' ;<'A 不是大写字母
jb @@3
cmp al, 'Z' ;>'Z'不是大写字母
ja @@2
add al, 'a'-'A' ; ;大写变小写
jmp short @@3
@@2:
cmp al, 'a' ;<'a'不是小写字母
jb @@3
cmp al, 'z' ;>'z'不是小写字母
ja @@3
sub al, 'a'-'A' ; ;小写变大写
@@3:
stosb ;
loop @@1
mov ah, 09h ;显示字符串,DS:DX
int 21h
mov ax, 4c00h ;正常退出
int 21h
main endp
end main
温馨提示:答案为网友推荐,仅供参考