При использовании инструкции 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).