Assembly 用汇编语言输入字母并显示相应的输出
您好,我正在创建接受单个字符并显示字母表的汇编程序。要求是(1)输入字符应显示(2)单个大写字母的输入应显示小写字母。(3) 字母表应显示在水平位置,(3)仅接受字母“X”作为输入 我设法让程序在输入大写字符时以小写字母显示字母表,但它显示垂直位置和显示的大写字母。我不知道怎么弄明白,有人能帮我解决这个问题吗。。。多谢各位Assembly 用汇编语言输入字母并显示相应的输出,assembly,x86-16,tasm,Assembly,X86 16,Tasm,您好,我正在创建接受单个字符并显示字母表的汇编程序。要求是(1)输入字符应显示(2)单个大写字母的输入应显示小写字母。(3) 字母表应显示在水平位置,(3)仅接受字母“X”作为输入 我设法让程序在输入大写字符时以小写字母显示字母表,但它显示垂直位置和显示的大写字母。我不知道怎么弄明白,有人能帮我解决这个问题吗。。。多谢各位 .model small .stack .data input db "Input a Uppercase Character -> $" .code org
.model small
.stack
.data
input db "Input a Uppercase Character -> $"
.code
org 100h
start:
main proc
mov ax,03
int 10h
mov ax,@data
mov ds,ax
mov ah,9
lea dx, input
int 21h
mov ah,01
int 21h
mov dh,al
mov ah,02
mov dl,13
int 21h
mov dl,10
int 21h
mov al,dh
mov bl,al
cmp bl, 'a'
jb main
cmp bl, 'z'
ja main
mov dl,al
sub dl,20h
mov ah,02
int 21h
mov cx,26
mov dh,dl
letters:
mov bx,cx
call down
mov dl,dh
cmp dl,'Z'
je exit
inc dl
int 21h
mov dh,dl
mov cx,bx
loop letters
mov ah,4ch
int 21h
main endp
down proc
mov dl,13
int 21h
mov dl,10
int 21h
ret
down endp
exit proc
mov ah,4ch
int 21h
exit endp
end start
输出应如下所示:
平平
输入:X
xyz您可以使用ASCII表格找出大写字母和小写字母之间的关系(提示:字母的相对顺序是相同的,因此您只需要找出如何转换一个字母)。我无法理解其他要点,尤其是固定输入(因此输出?)要求,“它垂直显示”。。因此,停止在每个字符后输出新行。该代码中有很多冗余,例如,您有exit proc,但内联exit(exit proc无论如何有点过分),或者您有“down”proc,但您在其他地方内联新行输出,而不是调用down,等等。。。您是否知道这些指令的作用,或者您只是从源代码中随机复制行,希望它能起作用?不会的。