我有一个数字存储在DL中,我需要这个数字最多三位数字?这是数字0-9的工作代码。DOS程序集简单的数学
WriteNumber:
;; print out number in dl
push ax
push dx
add dl,"0"
mov ah,02h ; printing one char
int 21h
pop dx
pop ax
ret
例如,两位数字。我可以采取dl/10。然后打印出结果,其余的打印出不同的字符。但是我得到了一个错误,因为这个数字需要在DIV的AX寄存器中。
我需要这样做:
MOV AX,DL
但是,这是行不通的?
我怎么能做到这一点时,INT21读取字符并将其放在一个8位寄存器,DIV只有16位? – Algific 2009-10-28 17:16:17
那么寄存器实际上是32位的,但是你可以通过使用ax,al,ah(而不是整个eax)来引用它的一些部分。所以如果你用8位值填充ax寄存器,你应该没问题。 – mrduclaw 2009-10-28 17:21:20
Ahhhh。谢谢。 – Algific 2009-10-28 17:25:30