两个不同的乘法结果
Two different results of multiplication
造成以下结果差异的原因是什么:
mov eax, 0
mov al, 2
mov ah, 4
mul ah; eax == 0x08
和:
mov eax, 0
mov al, 2
mov ah, 4
mul al; eax == 0x10
对于 8 位寄存器 mul
,隐含的第二个操作数是 al
。在伪代码中:
mul ah
表示 ax = ah * al
mul al
表示 ax = al * al
x86
汇编经常使用隐式操作数,因此最好阅读指令参考以了解它们。
造成以下结果差异的原因是什么:
mov eax, 0
mov al, 2
mov ah, 4
mul ah; eax == 0x08
和:
mov eax, 0
mov al, 2
mov ah, 4
mul al; eax == 0x10
对于 8 位寄存器 mul
,隐含的第二个操作数是 al
。在伪代码中:
mul ah
表示 ax = ah * al
mul al
表示 ax = al * al
x86
汇编经常使用隐式操作数,因此最好阅读指令参考以了解它们。