linux nasm将AL中的值移至AX

我正在打印多个数字整数的方式,将整数除以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。 我怎么能在那里得到那个价值,所以我可以把它分开?

只需清除ah寄存器即可。 ax寄存器由高低部分​​组成 – ah:al

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