Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPS.doc
Скачиваний:
27
Добавлен:
17.04.2019
Размер:
1.08 Mб
Скачать

3.8 Система команд мп 1810вм86

Команды в МП 1810ВМ86 имеют переменную длительность, кратную байту и занимающую формат от 1-го до 6-ти байт. Самые короткие команды – это команды имеющие регистровую адресацию (рисунок 3.8.1,а), а самые длинные команды относятся к прямой адресации, когда в команде указывается не только 16-разрядное смещение, но и еще 16-разрядный сегментный регистр (рисунок 3.8.1,б).

Рисунок 3.7.2 Минимальный (а) и максимальный (б) форматы команд

Байт кода операции KOП. В первом байте команды указывается код операции и номер регистра, а также может быть указано направление передачи данных по отношению к регистру reg в поле пост-байта с помощью разряда d. При d=0 – регистр является источником данных, а при d=1 – приемником. Разряд w – определяет разрядность регистров: при w=1 – 16-разрядные, а при w=0 – 8-разрядные регистры.

Пост-байт – это байт после кода операции КОП. Пост-байт используется для расширения способов адресации и имеет следующее значения разрядов:

- mod – два разряда, определяющие режим использования полей disp.

00 – disp отсутствует, 01 – disp имеет длину в 1 байт, 01 –disp

имеет длину в 2 байта, 11 – источником операнда является

регистр, номер которого содержится в поле reg;

- reg - номер регистра – источника 2-го операнда;

- r/m - код, определяющий вид косвенной адресации (таблица 3.7.1).

За пост-байтом могут следовать байты константы при непосредственной адресации, или байты смещения адреса disp и номер сегментной страницы seg, загружаемый в соответствующий сегментный регистр.

Выделим 3 основных типа команд:

  • пересылки;

  • преобразование данных;

  • команды передачи управления.

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

Фактически по этим командам идет копирование данных, так как при пересылке код в источнике остается.

1. Пресылки “регистр-регистр” -

MOV r1, r2 ; r2 r1;

2. Пересылки “регистр-память” -

MOV r, [disp ] ; M[disp ] r

MOV [disp ], r ; r M[disp ];

3. Непосредственная загрузка регистра или памяти -

MOV r[disp ] , data ; данные  r или в память M[disp ]

4. Обращение к стеку -

PUSH r ; запись в стек,

POP r ; чтение из стека;

5. Ввод/вывод данных с использованием прямой адресации -

IN AX, P[N8] ; ввод из порта с адресом N8 в регистр AX,

IN AL, P[N8]; ввод 8-разрядного кода в регистр AL,

OUT P[N8], AX ; вывод из регистра АХ в порт с адресом N8,

OUT P[N8], AL ; вывод 8-разрядного кода из регистра AL.

При прямой адресации возможно обращение к 256 внешним устройствам;

6. Ввод/вывод данных с использованием косвенной адресации. Для косвенной адресации используется регистр DX для хранения адреса ВншУ. Косвенная адресация позволяет обратиться к 64К внешних устройств. Команды имеют следующий вид –

IN AX, DX ; ввод из порта с адресом в DX в регистр AX,

IN AL, DX ; ввод 8-разрядного кода в регистр AL,

OUT DX, AX ; вывод из регистра АХ в порт с адресом в DX;

7. Команды пересылок адреса:

LEA r, [r1+r2+disp] ; исполнительный адрес EA, сформированный из источников, указанных в квадратных скобках, сохраняется в регистре r,

LDS r, [r1+r2+disp] ; по исполнительному адресу указанному в команде из памяти извлекается 4 байта, которые начиная с первого записываются: в младший байт регистра r, в старший байт регистра r, в младший байт сегментного регистр DS и в старший байт сегментного регистр DS,

LЕS r, [r1+r2+disp] ; отличается от команды LDS тем, что используется сегментный регистр ES.

Команды LDS и LES используются при обращении к данным, находящимся вне текущего сегмента DS или ES. Приведем пример использования команды LDS. Пусть пара 16-разрядных адресов [12C0:100A] – база сегмента и смещение в сегменте предварительно загружается в память с адреса 70F25h. С помощью команды LDS BX, [0F25h] мы обращаемся к памяти и извлекаем сначала два байта 100Ah и загружаем их в регистр ВХ, а затем извлекаются 3-й и 4-й байты, которые загружаются в DS. Далее выполняется команда MOV AL, [BX], по которой из ячейки памяти, смещение адреса, которое записано в BX, извлекается байт в аккумулятор AL. Схема перемещения данных представлена на рисунке 3.7.3.

Рисунок 3.7.3 Пример использования команды LDS

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]