Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 4 МП ЭВС.doc
Скачиваний:
36
Добавлен:
06.12.2018
Размер:
683.01 Кб
Скачать
    1. Система команд, форматы команд и способы адресации мп 80486

Система команд микропроцессора 80486 – это расширенная система команд предыдущих моделей микропроцессоров фирмы Intel.

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

  1. регистр – регистр,

  2. память – регистр,

  3. непосредственные данные – регистр,

  4. регистр – память,

  5. память – память,

  6. непосредственные данные – память.

Обобщенный формат команды микропроцессора 80486 аналогичен формату предыдущих моделей.

КОП

MOD R/ M

SIB

Смещение

Операнд

1 или 2 байт

0 или 1 байт

0 или 1 байт

0, 1, 2 или 4 байт

0, 1, 2 или 4 байт

Рисунок - Обобщенный формат команды микропроцессора 80486

В среднем длина команды составляет 4-5 байт.

Код операции (КОП) содержится в одном или в двух первых байтах. В коде операции могут быть определены поля, определяющие направление операции, разрядность операндов и т. д. Формат КОП:

7

6

5

4

3

2

1

0

 

К

О

П

 

 

D

W


Во многих командах арифметико-логических операций и пересылок значение бита W определяет разрядность операндов: W=0 – операции с байтами, W=1 – операции с 16 или 32-разрядными операндами. Разрядность слов (16 или 32 бит) определяется режимом работы микропроцессора и устанавливается в дескрипторе сегмента команд.

Большинство команд, которые могут ссылаться на операнд в памяти, содержат байт режима адресации. Этот байт позволяет задать два операнда команды. Формат байта режима адресации:

7

6

5

4

3

2

1

0

MOD

REG/ КОП

R/ M


REG

MOD

R/ M

операнд 1

операнд 2


Поля MOD и R/ M задают адрес одного из операндов, который хранится в регистре или в ячейке памяти. Поле MOD совместно с полем R/ M может принимать 32 возможных значения и служит для указания 8 регистров и 24 режимов адресации.

Поле REG определяет имя регистра операнда, либо содержит дополнительные разряды кода операции команды. Назначение этого поля определяется первым байтом команды (КОП).

Поле R/ M задает имя регистра операнда или вместе с полем MOD определяет режим адресации.

32-битные базовые и индексные формы адресации требуют наличия SIB-байта. Определенная кодировка MOD R/ M-байта сигнализирует о присутствии SIB-байта. Формат SIB-байта:

7

6

5

4

3

2

1

0

SS

INDEX

BASE

Поле INDEX определяет индексный регистр. Поле BASE определяет базовый регистр. SS – это масштабный множитель для модификации значения индекса.

Если поле MOD указывает, что при вычислении адреса операнда будет использовано смещение, в состав команды включается поле смещения. Смещение представляет собой 8-, 16- или 32-разрядное целое число со знаком.

Непосредственные операнды в команде могут быть 8-, 16- или 32-разрядными. Непосредственный операнд всегда находится в последнем поле команды.

Классификация команд:

  1. команды перемещения данных – позволяют перемещать операнды любого типа из памяти в регистр, из регистра в память, из регистра в регистр, допускают операции со стеком, выполняют ввод-вывод, производят операции с адресами,

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

  3. логические команды доступны при любом размере операндов. Во всех командах могут быть использованы непосредственные данные.

  4. команды вращения и сдвига,

  5. команды манипуляции битами – с их помощью можно осуществлять действия над определенными битами РОН,

  6. команды обработки строк. Строка может быть обработана в любом направлении; строки могут перемещаться, сравниваться и сканироваться для нахождения конкретного значения, они также могут передаваться в область или из области ввода-вывода.

  7. команды десятичной арифметики,

  8. команды управления программой - команды условного и безусловного переходов,

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

  10. команды синхронизации данных сопроцессора.