装配错误的字符显示

时间:2015-01-03 11:08:50

标签: assembly x86

.data

list db 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0
[...]
    lea si,list
[...]
mov al,[si]
    division:
    mov cx,10
    mov dx,0
    div cx
    mov bx,dx
    mov dl,al
    mov ah,2
    add dl,30h
    int 21h

    mov dx,bx
    mov ah,2
    add dl,30h
    int 21h; print [list]

[...]

为什么结果显示▂5

在分裂之前,我甚至尝试过#1; mov al,1"答案仍然是一样的   ▂5

1 个答案:

答案 0 :(得分:0)

因为你使用字大小的除法,你必须在这种特殊情况下将AH寄存器初始化为零。

或者你可以使用字节大小的分区!

修改

mov al,[si]
mov ah,0     ;***NEW***
division:
mov cx,10
mov dx,0
div cx