Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 раздел. Основные понятия архитектуры ЭВМ.doc
Скачиваний:
64
Добавлен:
06.02.2016
Размер:
4.74 Mб
Скачать

Характеристика системы команд процессора

Система команд - это набор допустимых для данного процессора управляющих кодов и способов адресации данных. Система команд жестко связана с конкретным типом процессора, поскольку определяется аппаратной структурой блока дешифрации команд, и обычно не обладает переносимостью на другие типы процессоров (хотя может иметь место совместимость “снизу-вверх” в рамках серии процессоров, как, например, в серииi80x86).

С физической точки зрения код команды ничем не отличается от обычных данных в двоичном коде, размещенных в памяти вычислителя. Конкретный двоичный код воспринимается и обрабатывается процессором как команда в том случае, когда он попадает в процессор в фазе чтения кода команды.

С логической точки зрения в двоичном коде команды существуют группы разрядов поляс различным функциональным назначением (рис. 3.3).

Рис. 3.3 Типовая структура формата команды:

1 - поле кода операции (КОП) объемом 1 или 2 байта; 2 - поле адресной части команды (АЧ) объемом от 1 до 4 байт.

На рис.3.3 показаны два основных поля в формате команды:

КОП - код операции - двоичный код, однозначно указывающий процессору на выполнение конкретных действий (пересылка, сложение и т.п.), и определяющий при этом форму задания адресов операндов;

АЧ - адресная часть - двоичное число, которое может представлять собой адрес (адреса) операндов, значение операнда, адрес следующей команды (адрес перехода, передачи управления ). Следовательно, формат команды – это совокупность таких ее характеристик, как количество, размер и назначение полей.

Язык программирования, максимально приближенный к системе команд конкретного микропроцессора – это Ассемблер. В этом языке коду каждой команды МП поставлена в соответствие определенная мнемоника – краткое буквенное название команды, например:

Пересылка данных – MOV (от англ. move)

Сложение – ADD

Переход по программе – JMP (от англ. jump) и т.д.

(!) Вспомнить примеры команд из лабораторных работ

Для программиста система команд представляется как минимально необходимый набор команд для реализации вычислений и управления ходом вычислительного процесса. В систему команд традиционно входят такие группы:

·          пересылка данных (регистр-регистр, регистр-память, память-регистр, специфические команды типа память-память);все команды пересылки выполняют, по сути, копирование данных из ячейки-источника в ячейку-приемник;

·          арифметические операции (+, –, *, : );

·          логические операции (and, or, xor, not) и операции сдвига;

·          ввод-вывод – специфические команды для передачи данных между процессором и устройствами ввода-вывода, размещенными в адресном пространстве ввода-вывода;

·          передача управления – при выполнении такой команды процессор записывает в счетчик команд PCадрес следующей команды, взятый из адресной части текущей команды;

·          специальные – останов, сброс, управление прерываниями, управление режимом пониженного энергопотребления и т.п.

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

·     прямая– адрес операнда или перехода содержится в АЧ команды;

·     непосредственная– в АЧ команды содержится значение операнда;

·     регистровая– в коде команды содержится указание на один или два регистра процессора, являющихся источниками операндов или приемником результата;

·     косвеннаярегистровая– в коде команды содержится указание на какой-либо регистр процессора, содержимое которого при выполнении команды интерпретируется процессором как адрес ячейки памяти, содержащей операнд;

·     косвенная базовая(иногда – индексная) – адрес операнда формируется (вычисляется) процессором в ходе выполнения команды как сумма содержимого одного из регистров и смещения (числа), задаваемого в команде, либо как сумма содержимого двух регистров. Таким образом, базовая или индексная формы адресации также являются разновидностью косвенной адресации.

Регистры, которые можно использовать для реализации косвенной адресации, часто называют указательными регистрами: в самом деле, они как бы “указывают” на ту ячейку памяти, в которой содержится операнд. Использование косвенной адресации более предпочтительно, поскольку такой подход позволяет создавать универсальные, легко перенастраиваемые (используется термин «переносимые»), и позиционно независимые программы. Применение прямой адресации “привязывает” программу к конкретным ячейкам памяти, и при этом резко снижается возможность ее использования в различных проектах. Важнейшая особенность косвенной адресации заключается в том, что адрес операнда долженформироваться в процессе выполнения программы(в то время, как в случае использования прямой адресации адреса всех операндов должны быть определены и указаны при написания текста программы).

Реализация основных способов адресации схематично показана на рис. 3.4.

(!) Вспомнить примеры команд для различных способов адресации из лабораторных работ

Разновидностью косвенной адресации является стековаяадресация с использованием содержимого регистраSP. При этом в процессе доступа к данным выполняется автоуменьшение или автоувеличение содержимого регистраSP. Подробнее стековая адресация будет рассмотрена далее.

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

Рис. 3.4. Схемы реализации основных способов адресации данных

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