3

我正在研究一种打印多个数字整数的方法,方法是重复将整数除以 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。我怎样才能在那里得到那个值,以便我可以分割它?

4

1 回答 1

3

只需清除ah寄存器即可。ax寄存器由它的高和低部分组成-ah:al

这同样适用于bx(bh,bl) cx(ch,cl) 和dx(dh,dl) 寄存器

于 2012-10-14T06:15:16.980 回答