Assembly 用汇编语言输入字母并显示相应的输出

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

您好,我正在创建接受单个字符并显示字母表的汇编程序。要求是(1)输入字符应显示(2)单个大写字母的输入应显示小写字母。(3) 字母表应显示在水平位置,(3)仅接受字母“X”作为输入

我设法让程序在输入大写字符时以小写字母显示字母表,但它显示垂直位置和显示的大写字母。我不知道怎么弄明白,有人能帮我解决这个问题吗。。。多谢各位

.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,等等。。。您是否知道这些指令的作用,或者您只是从源代码中随机复制行,希望它能起作用?不会的。