题目:汇编语言 输入一串字符串,将其中的小写字母转化为大写字母,并输出转化前、后的字符串。
代码:
data segment
str1 db 'input:','$'
str2 db 0dh,0ah,'output:','$'
buf db 30 ;定义数据缓冲区
db 0
db 30 dup(0)
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
lea dx,buf ;输入字符串
mov ah,0ah
int 21h
lea dx,str1 ;输出input:
mov ah,09h
int 21h
lea dx,buf+2 ;输出输入的字符串
mov ah,09h
int 21h
lea dx,str2 ;输出output:
mov ah,09h
int 21h
lea si,buf+1 ;设置cx
mov cl,[si]
mov ch,00h
inc si ;设置指针si
x2: mov al,[si] ;取字符
cmp al,61h ;判断是否是小写字母
jb x1
cmp al,7ah
ja x1
sub al,20h ;小写转大写
x1: mov [si],al ;把转变后的字符给原来的地址
inc si ;指针加一
loop x2 ;根据cx判断是否循环
lea dx,buf+2 ;输出输入的字符串
mov ah,09h
int 21h
done:mov ah,4ch
int 21h
code ends
end start
结果: