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