Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory-Vinograd.docx
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
20.55 Mб
Скачать

4. Форматы команд и способы адресации

Разработчики базовой ЭВМ выбрали три формата 16-битовых (однословных) команд с 4-битовым кодом операций. С помощью 4-битового числа можно закодировать не более чем 24 = 16 различных операций. Разработчики отвели два кода (1110 и 1111) на команды ввода-вывода и безадресные команды, а так как в этих командах либо используется меньшая по длине адресная часть, либо эта часть вообще отсутствуе, то появилась возможность иметь до 24= 16 команд ввода-вывода (4-битовый приказ на ввод-вывод) и до 212 = 4096 безадресных команд (12-битовое расширение кода операции).

Форматы команд базовой ЭВМ:

а — адресных;

б — безадресных;

в — ввода-вывода

В командах обращения к памяти на адрес отведено 11 бит, что позволяет осуществить прямое адресование всех 2048 (211) ячеек памяти базовой ЭВМ. Однако встречаются приложения, когда в команде целесообразнее размещать не сам адрес операнда (результата или перехода), а его указатель, т. е. адрес ячейки памяти, в которой сохраняется адрес операнда (результата или перехода). Такое косвенное адресование упрощает построение циклических программ, организацию работы с подпрограммами, а также создает условия для расширения адресуемого пространства (косвенное адресование 16-битовых ячеек базовой ЭВМ позволяет ей иметь память объемом до 216 = 65 536 слов).

Рис 2.4. Способы адресации:

а — прямой;

б — косвенный

Для указания вида адресации в командах используется бит с номером 11, в который при прямой адресации следует записывать 0, а при косвенной — 1. В мнемонических изображениях команд для указания косвенной адресации операнд помещается в скобки.

5. Выполнение машинных команд

В процессе исполнения машинных команд устройство управления ЭВМ производит анализ и пересылку команды, отдельных ее частей (кода операции, признака адресации и адреса) или операнда из одного регистра машины в другой ее регистр, АЛУ, память или устройство ввода-вывода.

Эти действия (микрооперации) протекают в определенной временной последовательности и скоординированы между собой. Для создания временной последовательности используется генератор тактовых импульсов (импульсов с частотой в несколько МГц).

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

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

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

  1. содержимое ячейки памяти, указываемой счетчиком команд, читается из памяти в регистр данных;

  2. содержимое счетчика команд увеличивается на единицу;

  3. содержимое регистра данных пересылается в регистр команд, код операции команды частично декодируется для выяснения типа команды (адресная, безадресная или ввода-вывода), анализируется бит признака адресации и происходит подготовка цепей, необходимых для выполнения команды;

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

Выборка адреса. Это состояние (этот машинный цикл) следует за выборкой команды для адресных команд с косвенной адресацией (бит вида адресации равен единице). Состояние используется для чтения адреса операнда (адреса результата или перехода) из памяти и состоит из следующих шагов:

  1. адресная часть команды пересылается из регистра данных (где пока еще сохраняется копия команды) в регистр адреса;

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

Если косвенно адресуется одна из индексных ячеек (ячеек с номерами от 008 до 00F), то цикл выборки адреса операнда (результата) продолжается:

  1. содержимое регистра данных увеличивается на 1;

  2. измененное содержимое регистра данных пересылается в ячейку памяти по адресу, указываемому регистром адреса;

5) содержимое регистра данных уменьшается на 1.

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

Исполнение. Последовательность действий, выполняемых в этом цикле, определяется типом выполняемой адресной команды.

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

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

B. При исполнении команд переходов производятся проверка соответствующего условия (1 в регистре переноса, 0 в знаковом разряде аккумулятора и т. п.) и пересылка адреса из регистра данных в счетчик команд при выполнении этого условия.

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

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

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