Часть команд процессор может обработать только со значениями одной разрядности. Процессор без колебаний перемножит байт на байт и слово на слово. Но никак не байт на слово, или двойное слово на слово. Чтобы складывать, перемножать и выполнять другие операции со значениями разных размеров, программист должен озаботиться преобразованием типов в своей программе. Под преобразованием типов я […]
Месяц: Июнь 2022
Рубрики
DIV
Синтаксис | DIV делитель | ||||||||||||||||||||
Машинный код | F6 /6 — DIV r/m8 F7 /6 — DIV r/m16 F7 /6 — DIV r/m32 | ||||||||||||||||||||
Описание | Деление без знака. | ||||||||||||||||||||
Действие | DIV используется при делении без учета знака. Команда делит 8-, 16-, 32- битные значение регистра (делимое) на хранимые в регистре или памяти байт, слово или двойное слово (делитель). Частное от деления помещается в AL, AX или EAX регистр соответственно. Остаток помещается в AH, DX или EDX. | ||||||||||||||||||||
Размер делимого (8-, 16- или 32-битный регистр), а также выделяемое место под результат определяются размером регистра, используемого в качестве делителя:
| |||||||||||||||||||||
Флаги | Флаги OF, SF, ZF, AF, PF и CF не установлены. |
Пример использования команды div:
1 2 3 | mov ax,240 mov cl,86 div cl ;AL = AX / CL {2}, остаток в AH {68} |
Рубрики
MUL
Синтаксис | MUL множитель | ||||||||||||||||
Машинный код | F6 /4 — MUL r/m8 F7 /4 — MUL r/m16 F7 /4 — MUL r/m32 | ||||||||||||||||
Описание | Умножение без знака. | ||||||||||||||||
Действие | Команда получает единственный явный аргумент, размер которого определяет регистры, выделеяемые командой под результат операции умножения (подробности приведены в таблице ниже). Другой множитель предварительно помещается в AL/AX/EAX регистр. | ||||||||||||||||
Размеры множителей и регистры, отводимые под результат исполнения команды:
| |||||||||||||||||
Флаги | Если старшая половина результата нулевая: OF=CF=0 SF=? ZF=? AF=? PF=?. Если старшая половина результата ненулевая: OF=CF=1 SF=? ZF=? AF=? PF=?. |
Пример использования команды mul:
1 2 3 | mov ax,5280 mov dx,3256 mul dx ;DX:AX = 1065300h |