Микропроцессорные устройства. Общие сведения. Классификация микропроцессоров. Система команд МП, страница 6

Команда МП может содержать одно, два или три слова, равные по длине. При этом первым словом (байтом В1) всегда является код операции, который определяет действия МП при выполнении определенной операции, потому что в нем содержится информация о виде операции (алгебраическое или логическое сложение, пересылка, декремент, инкремент и проч.), источниках и приемниках данных, и др. Если команда имеет формат более одного слова, то вторым или вторым и третьим словом (В2 или В2 и В3) являются операнд, или адрес операнда. Если команда содержит одно слово, то - это обязательно код операции, составляемый с помощью специальных формул, приводимых в системе команд МП.

На рис. 4.3. демонстрируются команды различного формата для МП, имеющего длину данных 1 байт.

Контрольные вопросы

1. Какие единицы измерения имеет длина слова данных и команд?

2. Что называется форматом данных и команд?

3. Какие форматы могут иметь команды МП?

4. Что называется кодом операции?

2.6. Способы адресации в МП

Адреса команд формируются счетчиком команд. Операнды и результаты выполнения операций могут храниться в разных местах (в МП или ОЗУ), поэтому способов их адресации существует несколько.

Прямая адресация. При этом способе команда содержит одно слово, в котором помимо кода операции содержится адрес (двоичный номер) регистра общего назначения, являющиеся источником или приемником операнда. Такой способ адресации удобнее использовать в тех случаях, когда многократно используются одни и те же данные. Эти данные удобно поместить в один из регистров общего назначения, что повышает быстродействие работы МП, т.к. это не требует более длительного обращения к ОЗУ или устройствам ввода-вывода.

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

Косвенная адресация. При этом способе адресации в команде указывается регистровая пара или адресный регистр, содержимое которых служит адресов, по которому в ОЗУ хранится операнд.

Стековая адресация. Стек – это память с упрощенной формой адресации, организуемая в ОЗУ. В оперативной памяти обычно под стек отводятся ячейки со старшими адресами и по мере  заполнения стека заполняются ячейки с адресами, последовательно убывающими.

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

Стековая адресация использует принцип: «Последним вошел – первым вышел». Этот вид адресации является упрощенным, потому, что программисту не требуется специально формировать адреса ячеек ОЗУ – за него это выполняет указатель стека. Однако этот вид адресации не позволяет обращаться к произвольно выбранной ячейке памяти в стеке, поэтому она используется в тех случаях, когда производится прерывание основной программы. При этом содержимое счетчика команд, в котором хранится адрес возврата в основную программу, промежуточные данные, хранящиеся в РОН, данные, хранящиеся в адресных регистрах, аккумуляторе и регистре признаков переносятся в стек, а в освободившийся счетчик команд заносится новый адрес, с которого начинается указанная подпрограмма. При возврате к выполнению основной программы содержимое стека последовательно возвращается на свои места в МП. Практически во время выполнения программы многократно возникает необходимость обращения к подпрограммам, поэтому использование стека позволяет существенно упростить работу с МП.