Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры Микропроцессоры.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
63.02 Кб
Скачать

13 Структура машинной команды. Способы задания операндов.

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

Префиксы – необязательные элементы машинной команды, модифицирующие выполнение машиной команды. Префикс повторения позволяет организовать цепочное исполнение команд; префикс размера адреса позволяет менять разрядность (16 или 32 разрядов); префикс размера оператора позволяет менять размер оператора (16 или 32 разряда); префикс замены сегмента позволяет сменить сегменты;

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

Байт режима адресации modr/m – определяет режим работы с адресом. Поле mod определяет количество байт адреса.

Поле reg/коп определяет содержимое первого операнда, это может быть либо регистр, либо продолжение кода операции.

Поле r/m используется совместно с полем mod и определяет использование первого операнда, который может быть либо регистром, либо использоваться для вычисления эффективного адреса (при значении mod=11).

Байт sib – используется для задания адресов операторов. При этом поля mod и b r/m имеют следующие значения mod=01 или mod=10, r/m=100. Поля байта sib имеют следующие значения: ss – масштабный множитель для индексного регистра, возможные значения 1, 2, 4 или 8; index – номер регистра используемого в качестве индексного; base – номер базового регистра.

Поле смещения в команде – 8, 16 или 32 разрядное значение адреса операнда.

Непосредственный операнд – 8, 16 или 32 разрядное числовое значение.

Способы задания операндов команды

Неявный способ – команда работает с конкретными, уже заранее известными операндами или регистрами.

Непосредственный операнд – операнд находится в самой команде

Регистровый операнд – операнд размещается в одном из регистров процессора.

Размещение операнда в памяти – в качестве адреса используется адрес ячейки памяти.

Порт ввода/вывода – в качестве операнда выступает адрес ячейки памяти выделенной для обмена с внешними устройствами, например LPT, COM.

Стек – в качестве операнда выступает стек.

14 Функциональная классификация машинных команд

Все машинные команды можно разбить на группы:

●Пересылки данных:

Различают четыре типа пересылок: общего назначения, с участием аккумулятора, адреса операнда и флагов. Ни одна из команд этой группы не влияет на флаги, за исключением двух команд, которые осуществляют явную загрузку регистра флагов F.

●Арифметические:

В эту группу входят такие команды, как: ADD (сложение, INC (ин­кремент), SUB (вычитание), NEG (отрицание), СМР (сравнение), MUL (умно­жение), IMUL (умножение целых чисел), DIV (деление), IDIV (деление целых чисел)

● Логические:

Четырьмя основными логическими командами являются AND (и), OR (или), XOR (исключающее или), NOT (не).

● Передачи управления:

Обычно в программе есть точки, в которых нужно принять решение о том, какая команда будет выполняться следующей. Это решение может быть:

безусловным — в данной точке необходимо передать управление не следующей команде, а другой, которая находится на некотором удалении от текущей;

условным — решение о том, какая команда будет выполняться следующей, принимается на основе анализа некоторых условий или данных.

● Цепочные

MOVS Пересылка данных из цепочки в цепочку

CMPS Сравнение двух цепочечных операндов

INS Ввод из порта в цепочку

OUTS Вывод цепочки в порт

● Управление состоянием процессора:

►работа с флагами;

►работа с системными регистрами.

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