Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АССЕМБЛЕР.doc
Скачиваний:
6
Добавлен:
21.09.2019
Размер:
388.1 Кб
Скачать

21.Команды пересылания данных ( mov, xchg).

Команды пересылки данных обычно наиболее часто используются из всего набора команд любой ЭВМ, и микропроцессор 8088 - не исключение. Большая часть каждой задачи по обработке данных заключается в переносе информации из одного места в другое. Программа может выполнять некоторую обработку информации по мере того, как она пересылается, но громадная часть работы сводится только к пересылке. В этом разделе рассматривается основные команды пересылки данных микропроцессора 8088, а в разделе, посвященном обработке строк - остальная часть таких команд. Команда MOV - основная команда пересылки данных, которая пересылает байт или слово данных из памяти в регистр, из регистра в память, или из регистра в регистр. Команда MOV может также занести число, определенное программистом, в регистр или в память. В действительности команда MOV - это целое семейство машинных команд микропроцессора 8088. Существует семь различных вариантов команды MOV, но программист использует каждую из этих команд с помощью единого названия операции MOV. Ассемблер порождает правильную машинную команду, основываясь на типах операндов, которые написал программист; и это одна из причин, по которой ассемблер требует для операндов назначения типов, т.е. ассемблер должен знать, что представляет собой каждый операнд - регистр, байт памяти, слово памяти, сегментный регистр, или что-нибудь еще. Такое назначение типов позволяет ассемблеру построить правильную машинную команду. В случае использования команды MOV ассемблер должен решить, какой из семи вариантов является подходящим, основываясь на операндах, написанных программистом.

Команда замены XCHG просто меняет местами содержимое двух ячеек. Эта команда может поменять местами содержимое двух регистров, или регистра и памяти. При этом в качестве операндов не могут использоваться сегментные регистры. Команда XCHG заменяет три команды пересылки и не требует промежуточной ячейки памяти. Если бы команда замены не существовола, программе потребовалось бы три пересылки, чтобы обменять значения в регистре AX и в регистре BX. Сначала она должна была бы переслать содержимое регистра AX в рабочую ячейку, затем переслать содержимое регистра BX в регистр AX, и наконец, переслать содержимое рабочей ячейки в регистр BX. Команда XCHG одна выполняет эту операцию.

22Арифм. Команды(add, sub).

Команда ADD выполняет сложение указанных операндов, представленных в двоичном дополнительном коде. Микропроцессор помещает результат на место первого операнда после того, как сложит оба операнда. Второй операнд не изменяется. Команда корректирует регистр флагов в соответствии с результатом сложения. Например, команда ADD AX,BX

складывает содержимое регистра BX с содержимым регистра AX, и оставляет результат в регистре AX. Регистр флагов сообщает о том, был ли результат нулевым, отрицательным, имел ли четность, перенос или переполнение. Команды вычитания SUB и SBB идентичны командам сложения, за исключением того, что они выполняют вычитание, а не сложение. Вы можете скорректировать Фиг.4.8 для вычитания, изменив знак "+" на знак "-". Вычитание устанавливает флаги состояния в соответствии с результатом операции, причем флаг переноса теперь означает заем. Например, команда

SUB AX, BX

вычитает значение регистра BX из значения регистра AX, а затем помещает результат в регистр AX. Флаги состояния изменяются так, чтобы отражать результат выполнения команды.