装配错误字符显示

assembly wrong character display

.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

除法前,我什至试过"mov al,1",答案还是一样 ▂5

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

或者您可以使用字节大小的除法!

编辑

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