DEC уменьшениt содержимого приемника на единицу

Команда DEC (decrement - уменьшить) вычитает 1 из содержимого регистра или ячейки памяти, но при этом (в отличие от команды SUB) не воздействует на флаг переноса CF. Команда DEC часто используется в циклах для уменьшения значения счетчика до тех пор, пока оно не станет нулевым или отрицательным. Ее можно использовать также для уменьшения значения индексного регистра или указателя при доступе к последовательно расположенным ячейкам памяти. Например:

DEC CX ;Уменьшить значение 16-битового

DEC AL ; или 8-битового регистра

DEC MEM_BYTE ;Уменьшить значение байтовой ячейки памяти

DEC MEM_WORD[BX] ;или слова памяти.

CMP сравнениt значений источника и приемника

 

Большая часть программ выполняет команды вовсе не в том порядке, в котором они хранятся в памяти. Обычно в программах есть переходы, циклы вызовы процедур и другие команды, заставляющие микропроцессор передавать управление от одной последовательности команд к другой. Эта передача управления происходит при выполнении или невыполнении определенных условий, например равенстве или неравенстве операнда какому либо значению. Выполнение условий фиксируется микропроцессором в регистре флагов. А команда СМР (compare - сравнить), обычно используется для изменения состояния флагов, на основании которых команды передачи управления "принимают решение" передавать или не передавать управление.

Подобно команде SUB команда СМР вычитает операнд-источник из операнда-приемника и в зависимости от результата устанавливает или обнуляет флаги Но в отличие от команды SUB команда СМР не сохраняет результат вычитания. Формат команды:

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

Другими словами, команда СМР не изменяет операнды. Она целиком предназначена для установки значений флагов, на основании которых команды условного перехода будут "принимать решение" о передаче управления.

MUL, IMUL умножение опреандов

Команда MUL (multiply - умножить) умножает числа без знака, a IMUL (integer multiply - умно­жить целые числа) - числа со знаком. Обе команды могут умножать как байты, так и слова.

Эти команды имеют следующий формат:

MUL источник

IMUL источник

где источник - регистр общего назначения или ячейка памяти размером в байт или слово. В качестве второго операнда команды MUL и IMUL используют содер­жимое регистра AL (при операциях над байтами) или регистра АХ (при операциях над словами). Произведение имеет двойной размер и возвращается следующим образом:

Умножение байтов- возвращает 16-битовое произведение в регистры АН (старший байт) и AL (младший байт).

Умножение слов- возвращает 32-битовое произведение в регистры DX (старшее слово) и АХ (младшее слово).

То есть размер n – битных сомножителей равен 2n.

После исполнения команды MUL флаги CF и OF равны 0, если старшая половина произведения равна 0; в противном случае оба этих флага равны 1. После исполне­ния команды IMUL флаги CF и OF равны 0, если старшая половина произведения представляет собой лишь расширение знака младшей половины. В противном случае они равны 1.

Несколько примеров умножения:

MUL BX ;Умножить ВХ на АХ без знака

MUL MEM_BYTE ;Умножить содержимое ячейки памяти на AL без знака

IMUL DL ;Умножить DL на AL со знаком

IMUL MEM_WORD ;Умножить содержимое ячейки памяти на АХ со знаком

Команды MUL и IMUL не дозволяют в качестве операнда использовать непос­редственное значение. Такое значение- перед умножением надо загрузить в ре­гистр или в ячейку памяти. Например, в результате исполнения команд

MOV DX,1O

MUL DX

содержимое регистра АХ будет умножено на 10.








Дата добавления: 2016-01-26; просмотров: 1604;


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

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.