Команды пересылки данных

 

Команды пересылки данных осуществляют обмен данными и адреса­ми между регистрами и ячейками памяти или портами ввода-вывода. Эти команды разделены на четыре подгруппы: команды общего назначения, команды ввода-вывода, команды пересылки адреса и команды пересылки флагов.

 

Команды общего назначения

Основная команда общего назначения 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 в качестве приемника в команде пересылки.