Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОргЭвм.Ответы.В качестве не уверен.doc
Скачиваний:
16
Добавлен:
26.10.2018
Размер:
1.31 Mб
Скачать

3. Стандартный цикл работы процессора. Режимы адресации. Очередь команд

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

Программа – последовательность команд, выполнение которых приводит к достижению определенной цели.

Командный цикл – действия по выбору из mem и выполнению 1-ой команды.

Счетчик команд (программный счетчик) – спец. ячейка, которая хранит адрес выполняемой программы. После выполнения очередной команды значение +1 (на длину команды, if ее код занимает несколько ячеек mem). Существуют спец. команды (передачи управления), которые в процессе своего выполнения модифицируют содержимое СК, обеспечивая переходы по программе.

Регистр команд – спец. ячейка проц. для хранения выполняемой прог.

Командный цикл состоит из след. действий:

  1. Извлечение из mem содержимого ячейки, адрес которой хранится в СК, и размещение этого кода в регистре команд (чтение команды)

  2. Увеличение содержимого СК на 1

  3. Формирование адреса операндов

  4. Извлечение адреса операндов

  5. Выполнение заданной в команде операции

  6. Размещение результата операции в mem

  7. Переход к п. 1.

П. 1, 2 и 7 – обязательно выполняются в каждом КЦ, остальные – нет. If длина кода команды составляет несколько машинных слов, то пп. 1 и 2 повторяются.

Команда содержит:

- тип операции, которую следует реализовать в данной команде (КОП)

- место в памяти, откуда следует взять 1-й операнд (А1)

- ------------------------------------ 2-й операнд (А2)

- --------------, куда следует поместить результат (А3)

Формат команды – совокупность полей (их длины, расположение в командном слове, способ кодирования инфо).

КОП А1 А2 А3 - трехадресный

КОП А1 А2 - двухадресный – чаще всего, в бинарных операциях результат – на место одного из операндов

КОП А - одноадресный – для реализации в проц. предусматривают 1 ячейку – аккумулятор. 1-й операнд и результат размещаются в акк., а 2-й операнд адресуется полем А.

КОП - безадресный

Двуместные операции: сложение, умножение, конъюнкция...

Одноместные : инверсия, сдвиг...

Без операций : СТОП, DAA (десятичная коррекция аккумулятора).

Реально – обычно несколько форматов, формат определяется в поле КОП.

Способ адресации – определяет, каким образом следует use инфо, размещенную в поле адреса команды.

  • Прямая – в адресном поле располагается адрес операнда. Разновидность – прямая регистровая адресация, адресующая не ячейку памяти, а РОН. Поле адреса регистра has существенно меньшую длину, чем поле адреса mem.

  • Непосредственная – в поле адреса команды не адрес операнда, а сам операнд. Удобно use в командах с const.

  • Косвенная – в поле адреса команды адрес ячейки mem, в которой хранится адрес операнда («адрес адреса»). Такой способ позволяет оперировать адресами как данными, что облегчает организацию циклов, обработку массивов data. Недостаток – потеря t на 2-е обращение к mem – за адресом и за операндом. Разновидность – косвенно-регистровая адресация, при которой в поле команды размещается адрес РОН, хранящего адрес операнда. Позволяет обращаться к большой памяти с help коротких команд и не требует 2-го обращения к mem (обращение к reg занимает << t, чем к mem).

  • Относительная – адрес формируется как sum 2-х слагаемых: базы, хранящейся в спец. регистре или в одном из РОН, и смещения, извлекаемого из поля адреса команды. Этот способ позволяет сократить длину команды (смещение м. б. укороченным, но в этом случае не вся mem доступна в команде) и/или перемещать адресуемые массивы инфо по mem (изменяя базу). Разновидности: индексная и базово-индексная адресации. Индексная предполагает наличие индексного регистра вместо базового. При каждом обращении содержимое индексного регистра автоматически модифицируется (обычно увеличивается или уменьшается на 1). Базово-индексная формирует адрес операнда как sum трех слагаемых: базы, индекса и смещения.

  • Безадресная – поле адреса в команде отсутствует, а адрес операнда или не has смысла для данной команды, или подразумевается по умолчанию. Часто безадресные команды подразумевают действия над содержимым аккумулятора. Характерно, что безадресные команды нельзя применить к другим регистрам или ячейкам памяти. Ex. – безадресная магазинная mem (стек) или очередь.