
- •Форматы машинных команд.
- •Теоретическая часть.
- •Структура команд
- •Адресность команды
- •Разрядность команд
- •В случае двухадресных команд для выполнения этих же вычислений будем иметь
- •Адресность эвм с внутренней памятью
- •Форматы команд в эвм с внутренней памятью процессора
- •Классификация машинных команд.
- •Команды передачи управления.
- •Команды условного перехода.
- •Команды перехода к подпрограммам.
- •Команды для организации циклов.
- •Переход по счетчику.
- •Переход по индексу.
- •2. Порядок выполнения лабораторной работы.
Команды условного перехода.
При условном переходе адрес следующей команды зависит от выполнения некоторого условия. Обычно, если условие выполняется, то происходит переход к команде по адресу, указанному в адресной части команды условного перехода (УП).
УП
А
В противном случае выбирается следующая по порядку команда, адрес которой определяется содержимым счетчика команд, увеличенным на приращение адреса команды lК. Так же, как и в команде безусловного перехода могут использовать те же способы адресации. Условия перехода (результат предыдущей операции >0, <0, =0, переполнение и т.д.) задаются кодом операции УП или в виде отдельного поля кода маски условия М в команде УП.
УП
М А
В последнем случае следующая команда определяется по алгоритму:
1 0
СЧК : = РГК[A] СЧК := СЧК +lK
Здесь УC[М] - логическая функция (условие), заданное маской М.
Если же условие перехода задается кодом операции, то алгоритм примет вид:
1 0
СЧК : = РГК[A] СЧК := СЧК +lK
Так, например, в больших ЭВМ используется 4-х разрядная маска условия, каждый разряд маски управляет своим признаком. Это позволяет задавать в качестве условия перехода выполнение одного из четырех признаков результата (если в маске одна единица), либо дизъюнкция признаков (если в маске несколько единиц).
Результат операции |
Код признака |
Условное обозначение |
Маска условия ЕС ЭВМ |
=0 <0 >0 переполнение |
00 01 10 11 |
ПР0 ПР1 ПР2 ПР3 |
1000 0100 0010 0001
|
При этом при М=1111 команда УП выполняется как безусловный переход, а при М=0000 (пустая команда) действует естественный порядок выборки команд. Таким образом, в ЭВМ исключается необходимость в отдельной команде БП.
Команды условных переходов позволяют реализовывать разветвляющиеся и циклические программы.
Команды перехода к подпрограммам.
Команды перехода к подпрограммам могут быть условными и безусловными, Их особенность в том, что помимо перехода они должны обеспечить по окончании подпрограммы возврат к исходной программе, к той точке ее, откуда был совершен переход. Обычно для перехода к программе используются специальные команды:
безусловный переход с возвратом (БПВ)
условный переход с возвратом (УПВ)
В случае команды БПВ выполняются следующие действия:
Команды программы Команды подпрограммы
БПВ
БПК
АВОЗ
(Р)
Адрес возврата АВОЗ , т.е. содержимое СЧК, увеличенное на приращение адреса команды lK, запоминается по адресу Р, указанному в команде БПВ.
В счетчик команд СЧК заносится содержимое поля А команды БПВ, т.е. адрес (А) начала подпрограммы.
В конце подпрограммы должны размещаться команда возврата, которая может представлять собой команду БЛК, указывающую посредством косвенной адресации адрес ячейки, в которой находится адрес возврата АВОЗ команды.
Формально всю эту процедуру после приема в регистр команд РГК команды БПВ можно представить в виде:
СЧ К : = СЧ К + lK - образование АВОЗ
РГ ДОП : = СЧ К
РГ АОП : = РГ К[P]
ОП[РГ АОП] : = РГ DОП - запоминание АВОЗ
СЧ К : = РГ К[A] - передача в СЧ К адреса
начала подпрограммы
- - - - - - - - - - - - --
Выполнение подпрограммы
-- - - - - - - - - - - - -
РГ АОП : = РГ К[A] Выполнение возврата из подпрограмм по
РГ DОП : = ОП[РГ AОП ] команде БПК, в поле адреса которой
СЧ К : =РГ ДОП указан косвенный адрес Р.
БПК
Р
В общем случае для хранения адреса возврата можно использовать:
Определенную ячейку оперативной памяти. Обычно адрес этой ячейки А указывают в адресном поле команды БПВ, а первая команда подпрограммы в этом случае должна располагаться в следующей ячейке ОП. (А+lK).
1
к-да
2
к-да
-
- - - - - - -
БПК,
А
БПВ
АА
А+lK
СЧК
Возврат из подпрограммы должен выполняться командой БПК:
БПК
А
Одним из регистров общего назначения R, тогда для обращения к подпрограмме используют команду БПВ.
БПВ
R
А для возврата из подпрограммы – команду БПКР
БПКР
R
При этом подпрограмма не должна изменять содержимое регистра R.
Стек.
БПВС
В этом случае команда перехода с возвратом записывает в стек адрес возврата, а возврат из подпрограммы должен выполняться командой ПБСТ
ПБСТ
При выполнении команды БПВС, содержимое указателя стека должно увеличиться на lK.