Набор команд микропроцессора 8088 не
счисления не полностью соответствует десятичной системе. В
некоторых случаях последняя цифра в результате простого вычисления
может оказаться неверной. Иногда это называют проблемой "потери
пенни", так как эти случаи наиболее заметны в финансовых
приложениях. BCD - представление чисел дает альтернативу для таких
вычислений.
Набор команд микропроцессора 8088 не имеет специальных команд
сложения и вычитания для BCD-арифметики. Здесь используется обычное
сложение и вычитание, применяемые как и при обычном двоичном
представлении. Результат сложения двух BCD-чисел на обычном
математическом процессоре может оказаться неправельным BCD-числом;
Для устранения этого микропроцессор 8088 имеет несколько команд,
которые преобразуют результат к правильной двоичной кодировке
десятичного числа. Для корректного проведения этого преобразования
процессор должен знать, был ли перенос из младшего полубайта в
старший во время сложения. Пример на Фиг. 3.13 показывает, почему
38
+ 29
----
61 Фиг. 3.13 Десятичное сложение
это необходимо. Десятичная сумма 38 + 29 равна 67. Но двоичная
сумма 38H + 29H равна 61H. Если числа 38 и 29 представляют
BCD-значения, то после операции сложения программа должна выполнить
коррекцию. Команда десятичной коррекции для сложения (DAA)
преобразует число в форму BCD. В нашем случае число представлено в
десятичной форме, т.е. оба полубайта находятся в диапазоне от 0 до
9, однако результат неверен. В данном случае сложение устанавливает
флаг дополнительного переноса, который показаывает, что произошел
перенос из младшей цифры (8 + 9). Этот флаг сообщает команде DAA,
чтобы она прибавила к результату 6, давая правильный результат 67.
Микропроцессор также использует флаг дополнительного переноса
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий