Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Команды коррекции. (19 билет)




Для коррекции операции сложения двух однозначных неупакованных BCD-чисел в системе команд микропроцессора существует специальная команда

AAA (ASCII Adjust for Addition) — коррекция результата сложения для представления в символьном виде. Эта команда не имеет операндов. Она работает неявно только с регистром AL и анализирует значение его младшей тетрады:

- если это значение меньше 9, то флаг CF сбрасывается в 0 и осуществляется переход к следующей команде;

если это значение больше 9, то выполняются следующие действия:

- к содержимому младшей тетрады AL (но не к содержимому всего регистра!) прибавляется 6, тем самым значение десятичного результата корректируется в правильную сторону;

- флаг CF устанавливается в 1, тем самым фиксируется перенос в старший разряд, для того чтобы его можно было учесть в последующих действиях.

AAS (ASCII Adjust for Substraction) — коррекция результата вычитания для представления в символьном виде. Команда AAS также не имеет операндов и работает с регистром AL, анализируя его младшую тетраду следующим образом:

- если ее значение меньше 9, то флаг CF сбрасывается в 0 и управление передается следующей команде;

- если значение тетрады в AL больше 9, то команда AAS выполняет следующие действия:

- из содержимого младшей тетрады регистра AL вычитает 6;

- обнуляет старшую тетраду регистра al;

- устанавливает флаг CF в 1, тем самым фиксируя воображаемый заем из старшего разряда.

AAM (ASCII Adjust for Multiplication) — коррекция результата умножения для представления в символьном виде. Она не имеет операндов и работает с регистром AX следующим образом:

- делит AL на 10;

- результат деления записывается так: частное в AL, остаток в AH.

В результате после выполнения команды AAM в регистрах AL и AH находятся правильные двоично-десятичные цифры произведения двух цифр.

AAD (ASCII Adjust for Division) — коррекция деления для представления в символьном виде.

Команда не имеет операндов и преобразует двузначное неупакованное BCD-число в регистре AX в двоичное число. Это двоичное число впоследствии будет играть роль делимого в операции деления. Кроме преобразования, команда AAD помещает полученное двоичное число в регистр AL. Делимое, естественно, будет двоичным числом из диапазона 0...99.

Алгоритм, по которому команда AAD осуществляет это преобразование, состоит в следующем:

- умножить старшую цифру исходного BCD-числа в AX (содержимое AH) на 10;

- выполнить сложение AH + AL, результат которого (двоичное число) занести в AL;

- обнулить содержимое AH.

AAD; коррекция перед делением

DIV C

DAS (Decimal Adjust for Substraction) — коррекция результата вычитания для представления в десятичном виде. Команда DAS преобразует содержимое регистра AL в две упакованные десятичные цифры.





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 435 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Своим успехом я обязана тому, что никогда не оправдывалась и не принимала оправданий от других. © Флоренс Найтингейл
==> читать все изречения...

2397 - | 2213 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.