当使用带有单个 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 in hex),正确地存储在AX寄存器中为00C0(见下面的输出)。AX寄存器的有符号范围是-32,768到 +32,767,无符号范围是0 到 65,535。因此,OF 和 CF 标志都应该是 clear(0)。但正如您在以下输出中看到的那样,它们都是 set(1)。