Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Команды передачи управления.




1) без запоминания адреса точки возврата – команды безусловного перехода. Это команды вида JMP ADR, где ADR – символическое имя адреса команды, которой передается управление. Представленная карта памяти иллюстрирует действие данной команды (здесь слева указывается адрес, справа – содержимое ячейки памяти с данным адресом).

JMP (**) – значение выражения (**) заносится в счетчик команд.

J&& (**) – (**) заносится в счетчик команд, если выполнено условие &&.

2)с запоминанием адреса точки возврата – команды вызова подпрограммы (возврата из подпрограммы) – это команды типа CALL ADR, RET, где ADR – символическое имя начального адреса подпрограммы. После выполнения команды CALL ADR управление передается команде, находящейся в памяти по адресу ADR– первой команде подпрограммы.

Последней командой любой подпрограммы является команда RET, после выполнения которой управление передается команде, следующей после CALL. Назовем ее точкой возврата. Запоминание адреса точки возврата (АТВ) осуществ­ляется в стеке. Таким образом, при выполнении команды CALL процессор выполняет следующие действия: 1) содержимое РС записывает в стек. 2) в РС записывается адресная часть команды CALL.

При выполнении команды RET процессор считывает содержимое стека в РС.

 

     
      ADR КОП (CALL)
        B2
      B3
      АТВ KOП
<PC> КОП (JMP)    
  B2   <SP–2> (AТВ) мл. б
  B3   <SP–1> (АТВ) ст. б
    <SP>  
<B3,B2>      
    <B3,B2>  
       
        KОП (RET)

Схема перехода без запоминания АТВ (слева) и с запоминанием АТВ (справа).

 

CALL (**) – содержимое счетчика команд спасается в стеке, а в счетчик команд заносится значение (**).

C&& (**) – команда действует как CALL, если выполнено условие &&.

RET – возврат, значение счетчика команд восстанавливается из стека.

R&& – аналогично RET, если выполнено условие &&.

Все команды передачи управления делятся на безусловные и условные.

Безусловные: JMP ADR; CALL ADR; RET.

Команды условного перехода: J&& ADR; С&& ADR; R&&.

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

Условия формируются на основе значений признаков в соответствии с приведенной ниже таблицей.

&& Условие Признак в регистре F
С перенос из старшего разряда У=1
NC нет переноса У=0
РЕ четный паритет Р=1
Р0 нечетный паритет Р=0
Z признак нулевого результата Z=1
NZ результат не равен нулю Z=0
M результат отрицательный S=1
P результат положительный S=0

 

Различают программные и аппаратные прерывания.

Программное прерывание имеет место при использовании команды CALL (или С&&).

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

RST N – при записи команды N заменяется целым числом от 0 да 8. При выполнении команды содержимое счетчика команд спасается в стеке и в счетчик заносится адрес 0000000000nnn000 (здесь N=nnn), что обеспечивает переход в один из 8 начальных адресов памяти. Коды 8 модификаций команды приведены в табл.2.

 

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...