Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы к КР3 ПОИТ 2012 Цепочки структуры BCD.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
201.07 Кб
Скачать
  1. Неупакованные bcd-числа, команда коррекции вычитания, принцип работы.

aas (ASCII Adjust for Substraction) — коррекция результата вычитания для представления в символьном виде.

Команда aas также не имеет операндов и работает с регистром al, анализируя его младшую тетраду следующим образом: если ее значение меньше 9, то флаг cf сбрасывается в 0, и управление передается следующей команде. Если значение тетрады в al больше 9, то команда aas выполняет следующие действия:

из содержимого младшей тетрады регистра аl (заметьте — не из содержимого всего регистра) вычитает 6;

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

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

  1. Неупакованные BCD-числа, команда коррекции умножения, принцип работы.

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

делит al на 10;

результат деления записывается так; частное — в al, остаток — в ah.

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

  1. Неупакованные BCD-числа, команда коррекции деления, принцип работы.

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

Команда не имеет операндов и преобразует двузначное неупакованное BCD-число в регистре ах в двоичное число. Это двоичное число впоследствии будет играть роль делимого в операции деления. Кроме преобразования, команда aad помещает полученное двоичное число в регистр al. Делимое, естественно, будет двоичным числом из диапазона 0...99. Алгоритм, по которому команда aad осуществляет это преобразование, состоит в следующем:

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

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

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

Далее программисту нужно выдать обычную команду деления div для выполнения деления содержимого ах на одну BCD-цифру, находящуюся и байтовом регистре или байтовой ячейке памяти.

  1. Упакованные BCD-числа, команда коррекции сложения, принцип работы.

daa (Decimal Adjust for Addition) — коррекция результата сложения для представления в десятичном виде.

Команда daa преобразует содержимое регистра al в две упакованные десятичные цифры. Получившаяся в результате сложения единица (если результат сложения больше 99) запоминается в флаге cf, тем самым учитывается перенос в старший разряд.

  1. Упакованные BCD-числа, команда коррекции вычитания, принцип работы.

das (Decimal Adjust for Substraction) — коррекция результата вычитания для представления в десятичном виде.

1. Если AF = 1 или значение младшей тетрады AL > 9, то (AL) = (AL) - б; AF « 1; в случае заема при вычитании установить флаг CF. Иначе — AF = 0.

2. Если CF = 1 или значение старшей тетрады AL > 9, то (AL) = (AL) -60; CF = 1. Иначе — CF = 0.