Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Инструкция AAM
Лучшие книги по Ассемблеру
Сделал подборку не новых, но проверенных книг по программированию на языке ассемблера. Если вы также как и я любите погружаться на низкий уровень, в те закоулки мира программирования, куда не всем путь открыт, то посмотрите. Возможно, что-то вам понравится. Подробнее... |
Инструкция AAM в Ассемблере исправляет BCD-значение после умножения. Синтаксис:
AAM
Команда AAM не имеет операндов.
Флаги ZF, SF, PF могут быть изменены в зависимости от итога выполнения команды. Остальные флаги имеют неопределённое состояние.
Инструкция AAM обычно используется после команды MUL и выполняет следующие действия:
- AH = AL / 10 (в регистр АН записывается итог деления значения в AL на число 10).
- AL = остаток от деления.
Машинный код команды AAM - D4h 0Ah. Где 0Ah - это основание системы счисления, по отношению к которой выполняется коррекция. Этот байт можно заменить на любое другое число (кроме нуля, как это сделать - можно посмотреть здесь). По умолчанию в этом байте значение 10, но в случае замены на другое число инструкция AAM преобразует значение АХ в две неупакованные цифры любой системы счисления.
Это работает на всех процессорах Интел (начиная с 8086), но появляется в документации только с процессора Пентиум.
По сути действие, которое выполняет команда ААМ - это целочисленное деление значения AL на число, которое находится во втором байте команды (по умолчанию это число равно 0Ah). После деления частное (итог деления) помещается в AH, а остаток - в AL. Поэтому команду ААМ часто используют для быстрого деления в алгоритмах с высокой степенью оптимизации.
Пример программы, где используется инструкция AAM, приведён ниже:
.model tiny .code ORG 100h start: MOV AL, 05h ;Число 1 MOV BL, 07h ;Число 2 MUL BL ;AX = AL * BL = 35 = 0023h AAM ;Теперь AX = 0305h RET END start
Напоследок, как всегда, о происхождении аббревиатуры AAM.
AAM - это ASCII Adjust After Multiplication - ASCII-коррекция после умножения.
Умножать числа в формате ASCII нельзя. Поэтому, если требуется умножить числе в ASCII-формате (или BCD), то сначала их надо преобразовать в обычные числа, выполнить умножение, а затем (если необходимо), перевести обратно в формат BCD с помощью команды AAM.
Подписаться на Дзен-канал
Вступить в группу "Основы программирования" Подписаться на рассылки по программированию |
Первые шаги в программирование
Главный вопрос начинающего программиста – с чего начать? Вроде бы есть желание, но иногда «не знаешь, как начать думать, чтобы до такого додуматься». У человека, который никогда не имел дело с информационными технологиями, даже простые вопросы могут вызвать большие трудности и отнять много времени на решение. Подробнее... |