linux nasm将AL中的值移动到AX

时间:2012-10-14 06:10:11

标签: linux assembly x86 nasm

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

1 个答案:

答案 0 :(得分:3)

请改为清除ah寄存器。 ax寄存器由高低部分​​组成 - ah:al

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