Почему в этом случае устанавливаются флаги OF и CF при использовании инструкции IMUL r / m8 - PullRequest
1 голос
/ 18 мая 2019

При использовании инструкции IMUL с одним 8-битным операндом результат сохраняется в регистре 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). Но, как вы можете видеть в следующем выводе, они оба установлены (1).

OUTPUT

...