<<
>>

Сложение

Вначале разберемся с сутью проблемы и попытаемся сложить два двузначных упа- кованных BCD-числа:

Как видим, в двоичном виде результат равен 1 101 1 100 (или 220 в десятичном представлении), что неверно.

Это происходит по той причине, что процессор не подозревает о существовании BCD-чисел и складывает их по правилам сложения двоичных чисел. На самом деле результат в двоично-десятичном виде должен быть равен 0001 0100 0010 (или 142 в десятичном представлении). Этот пример иллюс- трирует необходимость корректировки результатов арифметических операций с упакованными BCD-числами, так же как это было в случае неупакованных BCD- чисел. Для корректировки результата сложения упакованных чисел в целях пред- ставления его в десятичном виде процессор предоставляет команду DAA (Decimal Adjust for Addition). Команда DAA преобразует содержимое регистра AL в две упакованные десятич- ные цифры (по алгоритму, приведенному в приложении А, где данная команда описана более подробно). Получившаяся в результате сложения единица (если результат сложения больше 99) запоминается во флаге CF, тем самым учитывается перенос в старший разряд. Проиллюстрируем сказанное на примере сложения двух двузначных BCD-чи- сел в упакованном формате (листинг 8.12).
Листинг 8.12. Сложение упакованных BCD-чисел

В приведенном примере все достаточно прозрачно; единственное, на что следу- ет обратить внимание, — это описание упакованных BCD-чисел и порядок фор- мирования результата. Результат формируется в соответствии с основным прин- ципом работы процессоров Intel: младший байт по младшему адресу.

<< | >>
Источник: В. И. Юров. Assembler. Учебник для вузов. 2-е изд. 2003

Еще по теме Сложение:

  1. Прием сложения мысленной картины.
  2. Прием сложения мысленной картины.
  3. Статья 72. Правила сложения наказаний и зачет срока предварительного заключения
  4. 1. Порядок определения сроков наказаний при сложении наказаний
  5. II. 2. 2. От единого к множеству.
  6. ЦВЕТОСМЕШЕНИЕ АДДИТИВНОЕ
  7. 1.5.5. Пятиградусный диапазон знака Льва
  8. Статья 73. Исчисление сроков наказания
  9. 1.4.5. Пятиградусный диапазон знака Рака
  10. В знаке Рыб
  11. В знаке Девы
  12. 1.7.5. Пятиградусный диапазон знака Весов
  13. В знаке Водолея