Команды сложения и вычитания.


Сложение: add op1,op2

Вычитание: sub op1,op2

Сравнение: cmp op1,op2

Комбинации операндов такие же, как и в команде XCHG, op2 может быть также константным выражением (i8 или i16).

По командам ADD и SUB в op1 пересылается сумма или разность op1 и op2 соответственно. Эти команды влияют на флаги переноса CF, переполнения OF, знака SF и нуля ZF.

Флаг CF устанавливается в 1, если при выполнении произошел перенос или заём. Флаг знака становится равным старшему биту результата, который используется как знаковый при представлении двоичных данных как целых чисел со знаком. Флаг переполнения устанавливается в 1, если результат не вмещается в размер операндов при представлении их содержимого как чисел со знаком. Флаг нуля устанавливается в 1, если результат равен нулю.

Команда CMP аналогична команде SUB, только не происходит запоминание результата. Команда CMP лишь устанавливает флаги .

 

Увеличение на 1: inc op

Уменьшение на 1: dec op

Операнд может быть следующим: r8, m8, r16, m16.

После выполнения этих команд значение операнда увеличивается или уменьшается на 1. В отличие от команд сложения и вычитания, INC и DEC не влияют на флаг CF.

 

Команды перехода.

Безусловный переход: jmp op

где оp может быть меткой команды, на которую осуществляется переход; регистром или ячейкой памяти, в которых хранится адрес команды, на которую осуществляется переход.

По команде JMP выполнение программы осуществляется с команды, адресуемой в операнде.

Условный переход: jxx op

где xx – условие перехода, op – метка команды.

По команде Jxx выполнение программы продолжается с команды, адресуемой в операнде, если выполняется условие xx, или с команды, следующей за командой Jxx, если условие xx не выполняется.

xx может содержать название флага, тогда переход будет осуществлен, если соответствующий флаг равен 1 (например jz op – переход при ZF=1); букву n и название флага, тогда переход будет осуществлен, если соответствующий флаг равен 0 (например jnz op – переход при ZF=0); аббревиатуру условия перехода, тогда переход осуществится при выполнении этого условия. Аббревиатуру составляют буквы, символизирующие следующие условия:

E – equal (равно);

N – not (не);

G – greater (больше) – для чисел со знаком;

L – less (меньше) – для чисел со знаком;

A – above (больше) – для чисел без знака;

B – below (меньше) – для чисел без знака.

Например: NE – не равно; NGE – не больше и не равно, т.е. L – меньше.

Условие перехода формируется набором флагов, которые устанавливаются в соответствии с результатом работы команды, предшествующей инструкции Jxx.

Флаг – это бит в регистре флагов F. Регистр F является 16-ти разрядным, но только 9 разрядов отводятся под флаги, значение остальных разрядов документацией не определено.

CF (carry flag) – флаг переноса.

OF (overflow flag) – флаг переполнения.

ZF (zero flag) – флаг нуля.

SF (sign flag) – флаг знака.

PF (parity flag) – флаг четности.

AF (auxiliary carry flag) – флаг дополнительного переноса.

DF (direction flag) – флаг направления.

IF (interrupt flag) – флаг прерываний.

ТF (trap flag) – флаг трассировки.

 



Дата добавления: 2020-10-01; просмотров: 328;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

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

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.006 сек.