Группа команд передачи управления 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Группа команд передачи управления



 

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

Команды этой группы не изменяют состояния битов условий флагового регистра, а используют их при своем выполнении, осуществляя переход по указанному адресу, если один из четырех битов условий находится в состоянии «1» или «0».

Рассмотрим условия переходов:

Условие Условия перехода    
NZ Результат операции не равен 0 (Z =0)
Z Результат операции равен 0 (Z =1)
NC Переноса не было (CY =0)
С Был перенос (CY =1)
РЕ Число единиц в аккумуляторе четно (P =1)
РО

Число единиц в аккумуляторе нечетно (Р =0)

Р Результат операции положителен (S =0)
М Результат операции отрицателен (S =1)

 

Команды условного перехода имеют следующий формат:

Jcond Adr

где cond - одно из условий перехода перечисленных в таблице;

Adr - адрес перехода, расположенный в следующих двух байтах команды.

Выполнение команд условных переходов происходит следующим образом: если условие перехода истинно, то управление передается по указанному в команде адресу перехода, в противоположном случае выполняется следующая команда. В соответствии с приведенными в таблице условиями перехода в систему команд МП входят следующие команды условного перехода:

JNZ JZ JNC JC JPE JPO JP JM

Пример: пусть требуется числу, находящемуся в памяти по адресу 0860 пять раз прибавить число, находящееся в памяти по адресу 0861.

Адрес Команда Содержание ячейки памяти Комментарий
0800 LDA  

 

A<-­M0860

 

0801 60 60
0802 08 08
0803 LXI H  

 

HL<-­0861

 

0804 61 61
0805 08 08
0806 MOV B, M  

B<­-M0861

C<-­ 5

0807 MVI C  
0808 5 5  
0809 ADD B   A <­- A+B
080А DCR C   C<-­ C-1 — установка флагов (Z)
080В JNZ  

Если в результате последней операции получился не ноль, то перейти по адресу 0809

080C 09 09
080D 08 08
080E HLT    

Команда безусловного перехода, имеющая формат JMP Adr осуществляет безусловный переход по указанному адресу во втором и третьем байтах адреса перехода.

Команды условного вызова подпрограмм имеют следующий формат:

Ccond Adr

где cond - одно из условий перехода, перечисленных в таблице;

Adr - адрес перехода, расположенный в последующих двух байтах команды.

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

В соответствии с приведенными в таблице условиями перехода в систему команд МП входят следующие команды условного вызова подпрограмм:

CNZ CZ CNC СС СРЕ СРО СР СМ

Команда безусловного вызова, подпрограммы, имеющая формат CALL Adr осуществляет безусловный вызов подпрограммы, расположенной по указанному адресу.

Команды условного возврата из подпрограммы имеют следующий формат:

Rcond.

Команда возврата из под программы выполняется следующим образом: если условие возврата истинно, то в программный счетчик заносится содержимое вершины стека - адрес возврата, в противоположном случае выполняется следующая команда подпрограммы.

В систему команд МП входят следующие команды условного возврата из подпрограммы:

RNZ RZ RNC RC RPE RPO RP RM

Пример: пусть требуется к массиву чисел, расположенному по адресу от 0860 до 0865, 5 раз прибавить число, находящееся по адресу 0866. Необходимо использовать подпрограмму.

 

Адрес Команда Содержимое ячеек памяти Комментарии
0800 LXI H  

 

HL<­0860

 

0801 60 60
0802 08 08
0803 MOV A,M   A<­M0860
0804 CALL  

вызов подпрограммы по адресу 0870

 

0805 70 70
0806 08 08
0807 LXI H  

 

0808 60  
0809 08  
080А MOV M,A   M0860<­А
080В INX H   HL<­ HL+1
080C MOV A,M   A<­M0861
080D CALL  

 

вызов подпрограммы по адресу 0870

 

080Е 70 70
080F 08 08
0810 LXI H  

 

0811 61  
0812 08  
0813 MOV M,A    
... INX

Далее программа повторяется еще 3 раза

Подпрограмма

0870 LXI H  

 

HL<-0866

 

0871 66 66
0872 08 08
0873 MOV B,M   B<-­ ­M0860
0874 MVI C  

C<­-­ 5 счетчик цикла

0875 05 05
0876 ADD B   А<­ ­ А+В
0877 DCR C   C<­ ­ C-1
0878 YNZ  

 

если С≠0 то переходим на 0876

0879 76  
087А 08  
087В RET   Безусловный возврат из подпрограммы

Команда перезапуска.

Имеет формат RSTn.

При выполнении этой команды происходит прерывание работы микропроцессора и текущее состояние счетчика команд записывается в стек. Управление передается команде, адрес которой определяется как произведения числа n на 8.

Данная команда применяется при организации программных прерываний (как правило, по адресам n ∙8 находятся подпрограммы вывода на экран, используемые многими подпрограммами).

 



Поделиться:


Последнее изменение этой страницы: 2021-09-26; просмотров: 73; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.144.197 (0.007 с.)