Linux的移动NASM在AL值高达AX(linux nasm move a value in AL

2019-09-24 02:58发布

我工作的一种方式,通过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移动的值。 我怎样才能得到该值有这样我就可以把它?

Answer 1:

恰好离开ah寄存器来代替。 在ax寄存器包括它的高和低的部分- ah:al

这同样适用于bx (BH,BL) cx (CH,CL)和dx (DH,DL)寄存器



文章来源: linux nasm move a value in AL up to AX