需要将CL
除以10.我明白在除法AX
中将永远是分子,但我需要它作为分母。
在下面的代码中,我尝试将我需要的值作为分子移动到AL
,然后将10放入CL
并除以。
任何帮助,将不胜感激。
Mov Al, Cl
Mov Cl, 10
Div Cl
答案 0 :(得分:2)
需要将Cl除以10
那么你需要在CL
寄存器中找回商。
您的更正解决方案(10个字节):
mov al, cl
xor ah, ah ;Clear high byte because DIV will use the entire AX
mov cl, 10
div cl ;Divides AX by 10, leaves quotient in AL
mov cl,al
更短的解决方案(6个字节):
mov al, cl
aam ;Divides AL by 10, leaves quotient in AH
mov cl, ah
在8086上,AAM
指令专门除以10
在x86 AAM
指令可以除以任何字节大小的数字
所以这个AAM
指令实际上是8位×8位除法!
有没有办法将寄存器除以10?
所有分部都隐式使用累加器(AL
,AX
,DX:AX
)。只需先将寄存器复制到累加器即可。