Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Команды сложения и вычитания. Операции сложения и вычитания одинаково для знаковых и беззнаковых целых




 

Операции сложения и вычитания одинаково для знаковых и беззнаковых целых. Используются две формы операндов: байт или слово, причем операнды должны быть одинаковой длины. Операнды могут храниться в регистре или в ОП, но второй операнд может быть непосредственным.

Перечислим команды, относящиеся к группе команд сложения и вычитания:

а) ADD op1, op2; op1:= op1+op2

SUB op1, op2; op1:= op1 – op2

Сложение (вычитание) операндов в дополнительном двоичном коде, результат помещается на место первого операнда, второй операнд не изменяется.

Команда модифицирует регистр флагов FLAGS в соответствии с результатом операции, а именно:

ZF – нулевой рез-т,

SF – знак результата,

PF – флаг четности,

CF, AF – флаги переносов,

OF – флаг переполнения.

Примеры:

ADD AH, 12; AH:= AH + 12 (1Б)

SUB z, BX; z:= z – BX (2Б)

 

б) ADC op1, op2; op1:= op1+op2+CF

SBC op1, op2; op1:= op1 – op2 – CF

Сложение (вычитание) операндов с переносом, образованным предыдущей командой.

Модифицирует флаги аналогично п.(а).

Например, если требуется сложить двойные слова, расположенные в парах регистров

(AX, BX):= (AX, BX) + (CX, DX),

причем AX, CX – старшие байты слагаемых,

BX, DX – младшие байты.

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

ADD BX, DX

ADC AX, CX

 

в) Специальный случай сложения – изменение операнда на единицу.

INC op; op:= op +1 инкремент

DEC op; op:= op –1 декремент

г) Десятичная коррекция результата предыдущей операции. Это анализ флагов и преобразование результата сложения (вычитания) BCD-кодов. BCD-операнды обрабатываются обычными командами сложения и вычитания, а затем размещается команда десятичной коррекции.

Команда коррекции обрабатывает только однобайтовый операнд, находящийся в AL, поэтому команды десятичной коррекции операнда не имеют (подразумеваемая адресация).

DAA; коррекция после сложения

DAS; коррекция после вычитания.

Например,

ADD AL, y

DAA

SUB AL, DH

DAS

Примечание: BCD-операнды, представленные более, чем одним байтом должны обрабатываться побайтно.

Команды десятичной коррекции модифицирует флаги аналогично п.(а), за исключением флагов AF и OF.

Дополнительные команды

 

а) Команда сравнения

CHP op 1, op 2; op 1 - op2

Результат нигде не запоминается.

Цель команды – модификация флагов: ZF, SF,PF,CF,AF,OF.

 

б) Команда изменения знака

NEG op

Операнд может быть байт или слово в регистре или в ячейке памяти.

Пример,

MOV AH, 12

NEG AH; AH:= -12

Если операнд равен нулю, то его значение не изменяется.

Команда модифицирует флаги аналогично п.(а), причем

CF=1, кроме случая, когда операнд равен нулю;

OF=0, кроме случая, когда op=-128 (для 1Б), тогда OF=1, а операнд остается без изменения.





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 510 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Люди избавились бы от половины своих неприятностей, если бы договорились о значении слов. © Рене Декарт
==> читать все изречения...

2447 - | 2243 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.