Сложение
![]() |
Как видим, в двоичном виде результат равен 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: младший байт по младшему адресу.
Еще по теме Сложение:
- Прием сложения мысленной картины.
- Прием сложения мысленной картины.
- Статья 72. Правила сложения наказаний и зачет срока предварительного заключения
- 1. Порядок определения сроков наказаний при сложении наказаний
- II. 2. 2. От единого к множеству.
- ЦВЕТОСМЕШЕНИЕ АДДИТИВНОЕ
- 1.5.5. Пятиградусный диапазон знака Льва
- Статья 73. Исчисление сроков наказания
- 1.4.5. Пятиградусный диапазон знака Рака
- В знаке Рыб
- В знаке Девы
- 1.7.5. Пятиградусный диапазон знака Весов
- В знаке Водолея