Assembly EMU8086中的AAM指令

Assembly EMU8086中的AAM指令,assembly,x86-16,emu8086,Assembly,X86 16,Emu8086,汇编语言中AAM指令的机制是什么? 假设: 以下是AAM是如何工作的 AAM指令将AL寄存器除以10,将商保留在AH中,剩余部分保留在AL中 由于AAM仅取决于AL中的值,因此需要首先计算出其值 鉴于AL=53和BL=51,MUL-BL(将它们相乘)将53*51=2703留在AX 这转化为AH=10和AL=143,因为AX=AH*256+AL 应用AAM然后生成AH=143\10=14和AL=143%10=3 尽管是这样设计的,AAM指令的使用并不限于未打包的BCD。您可以使用它作为一个普通的1

汇编语言中
AAM
指令的机制是什么?
假设:

以下是
AAM
是如何工作的

AAM
指令将
AL
寄存器除以10,将商保留在
AH
中,剩余部分保留在
AL

由于
AAM
仅取决于
AL
中的值,因此需要首先计算出其值

鉴于
AL=53
BL=51
MUL-BL
(将它们相乘)将53*51=2703留在
AX

这转化为
AH=10
AL=143
,因为
AX=AH*256+AL

应用
AAM
然后生成
AH=143\10=14
AL=143%10=3


尽管是这样设计的,
AAM
指令的使用并不限于未打包的BCD。您可以使用它作为一个普通的10分制指令!当然,只有在
AL
中才有红利。

您不了解其中的哪一部分?乘法后,您乘以的值不是未打包的BCD值。未打包的BCD值介于0和9之间。
MOV AL,35H
MOV BL,33H
MUL BL
AAM
MOV AL,35H   ; This is 53 in decimal
MOV BL,33H   ; This is 51 in decimal
MUL BL
AAM