我有一个存储在dl中的号码,我需要这个号码才能用于最多三位数的号码吗?这是数字0-9的工作代码。
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
但这不起作用?
答案 0 :(得分:1)
我认为你无法做到
mov ax,dl
因为ax和dl的大小不同。你应该可以做到
mov ax, dx
或来自GJ:
movzx ax, dl
如果你只想要最后一个字节,那么只需引用dl和al。
答案 1 :(得分:0)
如果寄存器具有相同的大小,8位或16位或32位,我需要这样做:
mov ax,dl
但这不起作用?
mov
将起作用。
示例:
mov EAX, EDX
; or
mov AX, DX
; or
mov AL, DL