我有一個數字存儲在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