Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вопросы по экзамену(Асемблер).doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
350.72 Кб
Скачать

23 Вопрос

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:

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      ;учесть возможный перенос

        

INC

(INCrement operand by 1)

Увеличить операнд на 1

 

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

inc операнд 

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

Синтаксис Алгоритм работы: команда увеличивает операнд на единицу. Состояние флагов после выполнения команды:

11

07

06

04

02

OF

SF

ZF

AF

PF

r

r

r

r

Применение: Команда используется для увеличения значения байта, слова, двойного слова в памяти или регистре на единицу. При этом команда не воздействует на флаг cf.

        inc     ax      ;увеличить значение в ax на 1