Конспект лекций Системное программирование (семестр 2) Возле названия каждой лекции написано число пар, в течение которых она будет читаться (+ ср обозначает

Вид материалаКонспект
Схема команды
См. также
Схема команды
См. также
Подобный материал:
1   2   3   4   5   6   7   8   9   10   ...   57

ADC


(Addition with Carry)

Сложение с переносом

 

Схема команды: 

adc приемник,источник 

Назначение: сложение двух операндов с учетом переноса из младшего разряда.

Синтаксис

Алгоритм работы:
  • сложить два операнда;
  • поместить результат в первый операнд: приемник=приемник+источник;
  • в зависимости от результата установить флаги.

Состояние флагов после выполнения команды:

11

07

06

04

02

02

OF

SF

ZF

AF

PF

CF

r

r



r

r

r

Применение:

Команда adc используется при сложении длинных двоичных чисел. Ее можно использовать как самостоятельно, так и совместно с командой add. При совместном использовании команды adc с командой add сложение младших байтов/слов/двойных слов осуществляется командой add, а уже старшие байты/слова/двойные слова складываются командой adc, учитывающей переносы из младших разрядов в старшие. Таким образом, команда adc значительно расширяет диапазон значений складываемых чисел. В приложении 7 приведен пример программы сложения двоичных чисел произвольной размерности.

.data

sl1     dd      01fe544fh

sl2     dd      005044cdh

elderREZ        db      0 ;для учета переноса из старшего разряда результата

rez     dd      0

.code

...

        mov     ax,sl1

        add     ax,sl2  ;сложение младших слов слагаемых

        mov     rez,ax

        mov     ax,sl+2

        adc     ax,sl2+2        ;сложение старших слов слагаемых плюс cf

        mov     rez+2,ax

        adc     elderREZ,0      ;учесть возможный перенос

        

См. также: урок 8, приложение 7 и команды add, sub, sbb, xadd

ADD


(ADDition)

Сложение

 

Схема команды: 

add приемник,источник 

Назначение: сложение двух операндов источник и приемник размерностью байт, слово или двойное слово.

Синтаксис

Алгоритм работы:
  • сложить операнды источник и приемник;
  • записать результат сложения в приемник;
  • установить флаги.

Состояние флагов после выполнения команды:

11

07

06

04

02

00

OF

SF

ZF

AF

PF

CF

r

r

r

r



r

Применение:

Команда add используется для сложения двух целочисленных операндов. Результат сложения помещается по адресу первого операнда. Если результат сложения выходит за границы операнда приемник (возникает переполнение), то учесть эту ситуацию следует путем анализа флага cf и последующего возможного применения команды adc. Например, сложим значения в регистре ax и области памяти ch. При сложении следует учесть возможность переполнения.

chiclo  dw      2015

rez     dd      0

...

        add     ax,chislo       ;(ax)=(ax)+ch

        mov     word ptr rez,ax

        jnc     dop_sum         ;переход, если результат не вышел за разрядную сетку

        adc     word ptr rez+2,0        ;расширить результат, для учета переноса

                                ;в старший разряд

dop_sum:

...

        

См. также: урок 8, Приложение 7 и команды adc, sub, sbb, xadd