当对单个8位操作数使用 IMUL 指令时,结果存储在 AX 寄存器中。 我有以下代码
mov eax, 0
mov ebx, 0
mov al, 48
mov bl, 4
call dumpregs
imul bl
call dumpregs
48 * 8是192(十六进制的C0),已正确存储在 AX 中,注册为 00C0 (请参见下面的输出) 。 AX 寄存器的有符号范围是 -32,768至+32,767 ,无符号范围是 0至65,535 。因此,OF和CF标志都应清除(0)。但是,如您在以下输出中所看到的,它们都是set(1)。