我正在研究一种打印多位数整数的方法,重复除以整数10并收集余数,然后打印它们。以下是存在问题的代码段:
鸿沟:
; initial division
mov ax, 111 ; number we want to print
mov ch, 10 ; we divide by ten to siphon digits
div ch ; divide our number by 10
; al now has 11, ah has 1
mov dh, ah ; save the remainder in dh
1 mov bx, al ; these lines refill ax with the number to
mov ax, bx ; divide
mov ch, 10 ; refill ch with the divisor
div ch ; al now has 1, ah now has 1
标有1的行有问题。我需要将8位寄存器AL中的值移动到16位寄存器AX。我怎样才能在那里得到那个值,所以我可以分开呢?
答案 0 :(得分:3)
请改为清除ah
寄存器。 ax
寄存器由高低部分组成 - ah:al
同样适用于bx
(bh,bl)cx
(ch,cl)和dx
(dh,dl)寄存器