注册 登录
编程论坛 汇编论坛

求助呀,输出乱码

jackzero0 发布于 2010-12-05 23:19, 612 次点击
我水平不怎么高,搞得现在输出有点乱码,呃,请高手给看看
题目:从键盘输入4个十进制数字,依次保存在以DATA1为首的连续5字节内存单元的前4个单元中(先输入的在前,为高位),作为一个四位的十进制数乘以9后,结果保存在以DATA1为首的连续5字节内存单元中,然后在屏幕上以十进制方式显示出该运算结果。
我的程序如下:
data    segment
        data1 db 5,0,6 dup(?)        
data    ends

code    segment
        assume cs:code,ds:data

start:    mov ax,data
        mov ds,ax
        lea dx,data1
        mov ah,0ah
        int 21h
        
        mov cx,4
        mov di,offset data1+2
re:        mov al,[di]        ;使得数字向前移动一位
        mov [di-1],al
        inc di
        loop re
               
        mov di,offset data1+4   
        mov bl,09h
        mov cx,4
        
        mov bh,30h
again:    mov al,[di]            ;核心代码
        and al,0fh
        mul bl
        aam
        add al,30h
        add al,bh
        aaa
        mov [di],al
        add ah,30h
        mov bh,ah
        dec di
        loop again
        mov [di],ah
        
        mov byte ptr[data1+6],'$'
      
        lea dx,data1            ;显示模块
        mov ah,09h
        int 21h
        mov ah,4ch
        int 21h
        
code    ends
        end start
        
1 回复
#2
zaixuexi2010-12-10 10:35
我读了你写的程序的意思,按照你程序的意思,而且你用了aam指令,所以我的理解是
输入:1234
输出09183736
但是你的题目又是作为一个四位的十进制数乘以9,不知道你是想表达哪种意思.
1