Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Сложение двоичных чисел без знака




Микропроцессор выполняет сложение операндов по правилам сложения двоичных чисел. Проблем не возникает до тех пор, пока значение результата не превышает размерности поля операнда. Например, при сложении операндов размером в байт результат не должен превышать число 255. Если это происходит, то результат оказывается неверен. Рассмотрим, почему так проис­ходит. К примеру, выполним сложение: 254 + 5 = 259 в двоичном виде. 11111110 + 0000101 = 1 00000011. Результат вышел за пределы восьми бит, и правильное его значение укладывается в 9 битов, а в 8-битном поле операнда осталось значение 3, что, конечно, неверно. Для фиксирования ситуации выхода за разрядную сетку результата, как в данном случае, предназначен флаг переноса cf. Он располагается в бите 0 регистра флагов eflags/fiags. Именно установкой этого флага фиксируется факт переноса единицы из старшего разряда операнда. Анализ этого флага можно провести различными способами. Самый простой и доступный — использовать команду условного перехода jc (переход в случае, если в результате работы предыдущей команды флаг cf установился в 1).

В системе команд микропроцессора имеются три команды двоичного сложения:

inc операнд — операция инкремента, то есть увеличения значения операнда ла 1;

add операнд_1,операнд_2 — команда сложения с принципом действия:

операнд_1 = операнд_1 + операнд_2;

adc операнд_1,операнд_2 — команда сложения с учетом флага переноса cf. Принцип действия команды:

операнд_1 = операнд_1 + операнд_2 + значение флага переноса cf.

Рассмотрим пример вычисления суммы чисел:

xоr ах,ах

add al,17

add al, 254

jnc ml;если нет переноса, то перейти на ml

adc ah, 0.;в ах сумма с учетом переноса

ml:...

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных