为什么在使用IMUL r / m8指令时在这种情况下设置OF和CF标志

时间:2019-05-18 09:02:41

标签: assembly flags carryflag

当对单个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)。

OUTPUT

0 个答案:

没有答案