Читайте также:
|
|
Основная команда общего назначения MOV (move - переслать) может пересылать байт или слово между регистром и ячейкой памяти или между двумя регистрами. Она может также пересылать непосредственно адресуемое значение в регистр или в ячейку памяти.
Команда MOV имеет следующий формат:
MOV приемник, источник
В ней допустимо большинство из возможных сочетаний операндов.
Приведем несколько примеров:
MOV AX,TABLE; Пересылка иэ памяти в регистр
MOV TABLE,AX; и наоборот
MOV ES:[BX],АХ; Можно заменить используемый регистр сегмента
MOV DS,AХ; Пересылка между 16-битовыми регистрами
MOV BL.AL; Пересылка между 8-битовыми регистрами
MOV CL,-30; Пересылка константы в регистр
MOV DE5T,25H; или в память
В команде MOV исключаются следующие сочетания операндов:
1. Вы не можете осуществить непосредственную пересылку данных из одной ячейки памяти в другую. Чтобы выполнить такую пересылку, данные источника надо загрузить в регистр общего назначения, а затем запомнить содержимое этого регистра в приемнике. Например, если POUNDS и WEIGHT - переменные, находящиеся в памяти, то для пересылки значения из одной переменной в другую можно воспользоваться командами
MOV AX,POUNDS
MOV WEIGHT,AX
2. Вы не можете загрузить непосредственно адресуемый операнд в регистр сегмента. Как и в случае 1, сначала надо загрузить его в регистр общего назначения. Например, следующие команды загружают номер блока сегмента данных (DATA_SEG) в регистр DS:
MOV HX,DATA_SEG
MOV DS,AX
Подобные команды обычно сопутствуют оператору ASSUME в сегменте команд. Они указывают Ассемблеру, где размещен сегмент данных.
3. Вы не можете непосредственно переслать значение одного регистра сегмента в другой. Делайте подобные пересылки через регистр общего назначения. Например, чтобы регистр DS указывал на тот же сегмент, что и регистр ES, воспользуйтесь командами
MOV AX,ES
MOV DS,AX
(Для выполнения этой операции можно воспользоваться командами PUSH и POP, которые будут описаны в следующем разделе.)
4. Вы не можете использовать регистр CS в качестве приемника в команде пересылки.
Команда обмена XCHG
Команда обмена XCHG (exchange - обменять) меняет между собой значения двух регистров или регистра и ячейки памяти. Однако она не может выполнить обмен значений регистров сегмента.
Приведем несколько примеров команд XCHG:
XCHG AX,BX;Обменять значения двух регистров (слова
XCHG AL,BH; или байты
XCHG WRD_LOC,DX;Обменять значения ячейки памяти
ХСНG DL,BYTE_LOC; и регистра
Дата добавления: 2015-11-13; просмотров: 36 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Режимы адресации данных | | | Команды ввода-вывода |