x86程序集:在数字末尾包含0时将数字拆分为数字的问题

时间:2019-12-08 14:30:26

标签: assembly x86 emu8086

我正在开发一个程序,该程序获取一个数字(例如42),然后使用ah 2使用中断21将其打印到屏幕上。 我的程序设法将数字相除,但是当我得到一个像60的数字时,我的程序调用中断0h,因为我被0除

我该如何克服?

这是代码:

PROC printNumber 
    push bp 
    push dx
    push bx
    push ax
    mov bp, sp 

    mov ax, [bp + number]
    mov dx, 0 
    mov bx, 10
    splitNumber:
        cmp ax, 0
        jz exit 
        div bx  
        add dx, '0'
        mov ah, 2
        int 21h 
        jmp splitNumber


    exit:
    pop ax
    pop bx
    pop dx
    pop bp
    retn 2
ENDP printNumber

谢谢! :D

0 个答案:

没有答案