我正在尝试编写一个简单的程序,将字符串的小写字符转换为大写,但我根本没有输出。例如:
输入:AABB 输出:AABB
我不知道我的错误在哪里,但无论如何, 我的代码是:
data segment
prompt db 0dh,0ah,"Your string: $"
str1 db 15 dup('$')
msg db 0dh,0ah,"Result after conversion: $"
data ends
code segment
assume cs:code,ds:data
START:
mov ax,data
mov ds,ax
mov dx,offset prompt
mov ah,09h
int 21h
mov ah,01h
lea dx,str1
read:
int 21h
mov bl,al
cmp al,0Dh
je display1
cmp al,61h
jl nexx
cmp al,7Ah
jg nexx
sub al,20h
mov [si],al
inc si
jmp read
display1:
lea dx,msg
mov ah,09h
int 21h
lea dx,str1
mov ah,09h
int 21h
mov ah,4ch
int 21h
nexx:
inc si
jmp read
code ends
end start
答案 0 :(得分:0)
在获取输入字符
之前,您忘记将si指向str1mov ah,01h
lea dx,str1
mov si,dx ;point si to str1
并且您忘记将未转换的大写字符保存为输出字符串
nexx:
mov [si],al
inc si
jmp read