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

2.6. Система команд 16-разрядного мп

Система команд состоит из 113 базовых команд, объединенных в четыре группы:

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

- команды обработки данных;

- команды управления;

- команды обработки цепочек данных.

Список команд приведен в прилож. П2. При описании команд использованы следующие обозначения: R- регистры общего назначения; RS- сегментные регистры; в квадратных скобках указывается, что операнд берется из памяти. Содержимое регистров обозначается круглыми скобками. Если команда предназначена для выполнения операций над операндом, который может быть выбран из регистра или памяти, то используется обозначения R/[M].

Данные в МП могут быть представлены как двоичные целые числа со знаком или без знака, причем каждый из вариантов реализуется как в формате 8-разрядного двоичного числа, так и в формате 16-разрядного.

Положительные числа представляются в прямом коде, отрицательные - в дополнительном. Под знак числа выделяется старший (крайний слева) двоичный разряд, при этом плюс кодируется нулем, минус - единицей.

Для представления десятичных чисел используется двоично-десятичный код, для кодирования одной цифры которого отводится 4 двоичных разряда (тетрада) для записи чисел в упакованном формате, либо 8 двоичных разрядов (две тетрады) для записи чисел в неупакованном формате. В последнем случае младшая тетрада отводится для записи двоичного кода десятичной цифры, а старшая тетрада - для записи кода служебного знака (зоны), который определяется из таблиц кода обмена информацией КОИ-7 (ASCII).

2.6.1. Команды передачи данных

Команда пересылки MOV применяется для пересылки операндов и имеет пять модификаций.

Команда типа MOV R1/M, R2/M служит для пересылки операнда из регистра в регистр, из памяти в регистр и из регистра в память.

При выполнении команды содержимое источника сохраняется. Если смещение disp не используется, то команда содержит два байта. Для пересылки типа регистр-регистр запись команды аналогична записи команды MOV R1, R2 МП КР580.

Например, команда MOV AL, CL обеспечивает пересылку 8-разрядного операнда из регистра CL в регистр AL, команда MOV AX, CX - пересылку 16-разрядного операнда из регистра СХ в регистр AX. Для передачи операнда из регистра в память или из памяти в регистр адрес ячейки памяти следует указать либо в команде (прямая адресация), либо в базовом регистре ВХ, либо в базовом регистре ВХ и в одном из индексных регистров SI, DI. Например, команда MOV CX, 1056Н обеспечивает передачу в регистр СХ 16-разрядного операнда из ячеек памяти с номерами 1056Н и 1057Н относительно содержимого сегментного регистра DS, а команда MOV DX, BX обеспечивает передачу в регистр DХ 16-разрядного операнда из ячеек памяти, адрес которых определяется содержимым регистра ВХ и ВХ+1 относительно DS.

В приведенном формате команд пересылка данных в сегментные регистры не применяется. Для работы с сегментными регистрами используются команды MOV RS, R/[M] или MOV R/M, RS.

Например, команда MOV SS, DX обеспечивает пересылку содержимого регистра DX в регистр SS, а команда MOV SS, BX передачу содержимого ячейки памяти с адресом ВХ относительно DX в регистр SS.

Среди команд пересылок имеются команды загрузки регистров АХ и AL (аккумулятора) содержимым ячейки памяти, адрес которой указан в команде (аналог команд LDA и STA микропроцессора КP580). Соответственно команды записываются как MOV AX (либо AL), М и MOV [M], AX (либо AL).

Команда MOV R,data (аналог команды MVI R,data МП КР580) обеспечивает пересылку непосредственного операнда, записанного в команде, в регистр R (data 8 разрядов при W=0 или 16 разрядов при W=1).

Команда XLAT служит для загрузки регистра AL содержимым ячейки памяти, адрес которой равен [(AL)+(BX)].

Команда LDS R,[M] обеспечивает загрузку регистра DS 16-разрядным словом из ячейки памяти, адрес которой равен [DS+M+2], а в регистр DS пересылается содержимое ячейки памяти [(DS)+M].

Команда LEA R/[M] служит для загрузки R смещением ЕА, указанным в команде.

Команда LES R,[M] служит для загрузки регистра ES и выполняется аналогично команде LDS.

Команда загрузки стека PUSH имеет четыре модификации.

Команда PUSH R/[M] служит для загрузки содержимого ячейки памяти или регистра в стек. Старший байт 16-разрядного слова записывается в ячейку памяти с адресом SP-1 (относительно регистра SS).

Команды PUSH R и PUSH RS обеспечивает загрузку в стек соответственно содержимого РОН и сегментного регистра. Команда PUSH F -регистра признаков F.

Команды выгрузки стека РОР имеют 4 модификации, как и команда PUSH: POP R/[M], POP R, POP RS, POP F.

Команда LAHF используется для загрузки регистра АН значением младшего байта регистра F.

Команда SAHF используется для пересылки содержимого регистра АН в младший байт регистра F.

Команда IN AX,port (IN AL,port) служит для ввода в аккумулятор 16- или 8-разрядного операнда из порта, адрес которого (8 разрядов) указан в команде (аналог команды IN port для МП КР580).

Команда IN AX,DX (IN AL,DX) служит для ввода в аккумулятор 16- или 8- разрядного операнда из порта, адрес которого указан в регистре DX.

Имеются две аналогичные команды (OUT) для вывода данных из аккумулятора в порт.