ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Запись на языке высокого уровняПриемник -= Источник + CF;
Команда DEC – уменьшение на единицу
Формат команды
Dec Операнд
Действие команды
Запись на языке высокого уровня Операнд--; Команда NEG – изменение знака
Формат команды
Neg Операнд
Действие команды
Запись на языке высокого уровня Операнд = -Операнд; Команда MUL – умножение беззнаковых чисел
Формат команды
Mul Источник
Действие команды Команда MUL – умножение беззнаковых чисел
Особенности команды
Пример. Реализация команды C=A*B Mov EAX, A mul B mov C, EAX; возможна потеря Команда DIV – деление беззнаковых чисел
Формат команды Div Источник Действие команды 2 байта: AX = (DX;AX) / Источник; 4 байта: EAX = (EDX;EAX) / Источник; Команда DIV – деление беззнаковых чисел
Особенности команды Пример. Реализация команды C=A/B Mov EAX, A Mov EDX, 0 div B Mov C, EAX Команда IMUL – умножение знаковых чисел
Формат команды (1) imul Источник (2) imul Приемник, Источник (3) imul Приемник, Источник1, Источник2
Команда IMUL – умножение знаковых чисел Действие команды, случаи (2), (3) – операнд-приемник должен быть регистром; – операнд-источник2 должен быть непосредственным – результат умножения усекается до размера Команда IMUL – умножение знаковых чисел Пример. Реализация команды C=A*B Mov EAX, A imul EAX, B; возможна потеря!!! Mov C, EAX Команда IDIV – деление знаковых чисел Формат команды Idiv Источник Действие команды При использовании арифметических команд сложение, вычитание, умножение необходимо, чтобы размеры операндов были одинаковыми. При использовании арифметической команды деление, чтобы размер делимого был в два раза больше размера делителя. Поэтому часто перед выполнением арифметических команд выполняются команды преобразования типов, которые позволяют увеличивать разрядность операндов до требуемых размеров. Все команды преобразования типов рассчитаны на использование со знаковыми операндами и заполняют дополнительные разряды значением знакового бита.
Команда CBW – преобразование байта в слово Пример 1. Вычисление C=A+B (Слово = Байт + Слово) Mov AL, A Cbw Add AX, B Mov C, AX Команда CBW – преобразование байта в слово Пример 2. Вычисление C=A/B (Байт = Байт / Байт) Mov AL, A Cbw Idiv B Mov C, AL Команда CWD – преобразование слова в двойное слово Формат команды Cwd Действие команды Команда CWDE – преобразование слова в двойное слово Формат команды Cwde Действие команды Команда CDQ – преобразование двойного слова в учетверенное слово Формат команды Cdq Действие команды Команда CDQ – преобразование двойного слова в учетверенное слово Пример. Вычисление C=A/B (знаковые операнды) Mov EAX, A Cdq Idiv B Mov C, EAX Для преобразования типа беззнаковых операндов достаточно заполнить соответствующий регистр (часть регистра) нулевыми битами, например, с помощью команды MOV Пример. Вычисление C=A/B (беззнаковые операнды) Mov EAX, A Mov EDX, 0 Div B Mov C, EAX Не нашли, что искали? Воспользуйтесь поиском:
|