Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНАЯ РАБОТ1.docx
Скачиваний:
3
Добавлен:
18.09.2019
Размер:
43.84 Кб
Скачать

Лабораторная работа № 4 Архитектура микропроцессоров

Форматы команд. Дать описание разрядов

Форматы команд и система команд

Структура машинной программы обуславливается набором команд рассматриваемой ЭВМ и порядком обработки команд машиной. Команды, каждая из которых соответствует отдельной операции, обрабатываются процессором последовательно.

Команда осуществляет изменение содержания определенного регистра или передачу содержимого определенного регистра в другой регистр. Выполнение команды, таким образом, соответствует определенному переходу из одного состояния в другое. Возможные переходы машины из одного состояния в другое описываются набором ее команд. И наоборот, действие каждой команды исчерпывающим образом характеризуется осуществляемым изменением перехода.

Команда работает с определенными ячейками памяти или регистрами, называемыми операндами команд, содержимое которых при выполнении команды читается и/или записывается. Машины обычно представляют пользователю фиксированный набор элементарных команд. Для каждой из этих команд в аппаратуре машины имеется соответствующая ее часть для выполнения данной команды. Различают следующие типы команд:

  1. команды загрузки и передачи;

  2. арифметические команды (двоичная арифметика для чисел с фиксированной точкой, двоичная арифметика для чисел с плавающей запятой, десятичная арифметика);

  3. логические операции, выполняемые поразрядно над двоичными словами, выполняемые поразрядно над двоичными словами;

  4. операции с адресами;

  5. команды сдвига и организационные команды;

  6. команды завершения программы;

  7. команды перехода и вызова подпрограмм;

  8. команды ввода/вывода;

  9. управляющие команды (привилегированные команды для изменения статуса программ).

Здесь команды классифицированы по их действию на различные составные части машины.

Основной формат кодирования команд Ассемблера (на примере IBM) имеет следующий вид:

[Метка] команда [операнд(ы)].

Машинные коды имеют различную длину: один, два, три или четыре байта. Многие специфические команды имеют однобайтовые машинные коды и не используют прямой адресации памяти, например:

КОД Обозначение

40 INC AX Увеличение АХ на 1

50 PUSH AX Запись АХ в стек

C3 RET (short) Короткий возврат из процедуры

CB RET (far) Длинный возврат из процедуры

FD STD Установка флага направления

Ни одна из перечисленных команд не использует прямой адресации памяти. Другие команды, использующие непосредственный операнд, 8-битовый регистр, регистровую пару или адрес памяти, требуют более сложного машинного кода. Команды, использующие регистр могут содержать три бита, указывающих на конкретный регистр, и один бит, определяющий размер регистра: байт или слово. Кроме того лишь некоторые команды обеспечивают доступ к сегментным регистрам.

Пример.

Команда MOV с однобайтовым непосредственным операндом.

MOV AH, 00 1011 0 100 00000000

w reg = AH

Первый байт машинного кода указывает на однобайтовый размер (w=0) и на регистр AH (100). Следующая команда MOV содержит непосредственный двухбайтовый операнд:

MOV AX,00 1011 1 000 00000000

w reg=AX

Первый байт машинного кода указывает на размер в одно слово (w=1) и на регистр AX (000).

Обобщать приведенные примеры не следует, так как указание регистра и бита w может быть в различных позициях кода.

Двухбайтовые команды.

Рассмотрим пример сложения содержимого регистров DX и AX:

ADD BX, AX 0000 0011 11 011 000

dw mod reg r/m

d=1 означает, что биты reg и w описывают операнд 1 (BX), а биты mod, r/m и w — операнд 2 (AX); w=1 определяет размер регистров в одно слово; mod=11 указывает, что операнд 2 является регистром; reg = 011, указывает, что операнд 1 является регистром BX; r/m=000, указывает что операнд 2 является регистром AX.

Трехбайтовые команды.

Трехбайтовые команды можно рассмотреть на примере команды MOV.

MOV mem, AX 10100001 dddddddd dddddddd

В данном примере w=1 означает слово, следовательно, предполагается 16-битовый регистр AX. Байты 2 и 3 содержат относительный адрес памяти.