Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Команды перехода и вызова подпрограмм




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

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

· команды переходов (JMP, JC, JNC, JZ, JNZ, JP, JM, JPO, JPE);

· команды вызова подпрограмм (CALL, CC, CNC, CZ, CNZ, CP, CM, CPO, CPE);

· команды возврата (RET, RC, RNC, RZ, RNZ, RP, RM, RPO, RPE);

· команды рестартов (RST0, RST1, RST2, RST3, RST4, RST5, RST6, RST7);

· команда записи содержимого H-пары в программный счетчик (PCHL).

Ни одна из команд этой группы не изменяет содержимое регистра признаков F.

 

Формат, байтов Время тактов Код Мнемо- код Наименование команды Описание операции  
 
    C3 JMP B3B2 Безусловный переход В (РС)-регистр записывается адрес перехода (В3В2)  
    DA JC B3B2 Переход, если перенос Если условие верно, то в (РС)-регистр записывается адрес перехода (В3В2), иначе переход к следующей команде (РС)=(РС)+3  
    D2 JNC B3B2 Переход, если не перенос Если условие верно, то в (РС)-регистр записывается адрес перехода (В3В2), иначе переход к следующей команде (РС)=(РС)+3  
    CA JZ B3B2 Переход, если нуль Если условие верно, то в (РС)-регистр записывается адрес перехода (В3В2), иначе переход к следующей команде (РС)=(РС)+3  
    C2 JNZ B3B2 Переход, если не нуль Если условие верно, то в (РС)-регистр записывается адрес перехода (В3В2), иначе переход к следующей команде (РС)=(РС)+3  
    F2 JP B3B2 Переход, если плюс Если условие верно, то в (РС)-регистр записывается адрес перехода (В3В2), иначе переход к следующей команде (РС)=(РС)+3  
    FA JM B3B2 Переход, если минус Если условие верно, то в (РС)-регистр записывается адрес перехода (В3В2), иначе переход к следующей команде (РС)=(РС)+3  
    EA JPE B3B2 Переход, если четно Если условие верно, то в (РС)-регистр записывается адрес перехода (В3В2), иначе переход к следующей команде (РС)=(РС)+3  
    E2 JPO B3B2 Переход, если нечетно Если условие верно, то в (РС)-регистр записывается адрес перехода (В3В2), иначе переход к следующей команде (РС)=(РС)+3  
    CD CALL B3B2 Безусловный вызов подпрограммы В стеке сохраняется адрес следующей команды (РС)= (РС)+3, затем в (РС)-регистр записывается адрес вызова подпрограммы (В3В2)  
  11/17 DC CC B3B2 Вызов подпрограммы, если перенос Если условие верно, то в стеке сохраняется адрес следующей команды (РС)=(РС)+3, затем в (РС)- регистр записывается адрес вызова подпрограммы (В3В2). Иначе переход к следующей команде (РС)=(РС)+3  
  11/17 D4 CNC B3B2 Вызов подпрограммы, если не перенос Если условие верно, то в стеке сохраняется адрес следующей команды (РС)=(РС)+3, затем в (РС)- регистр записывается адрес вызова подпрограммы (В3В2). Иначе переход к следующей команде (РС)=(РС)+3  
  11/17 CC CZ B3B2 Вызов подпрограммы, если нуль Если условие верно, то в стеке сохраняется адрес следующей команды (РС)=(РС)+3, затем в (РС)- регистр записывается адрес вызова подпрограммы (В3В2). Иначе переход к следующей команде (РС)=(РС)+3  
  11/17 C4 CNZ B3B2 Вызов подпрограммы, если не нуль Если условие верно, то в стеке сохраняется адрес следующей команды (РС)=(РС)+3, затем в (РС)- регистр записывается адрес вызова подпрограммы (В3В2). Иначе переход к следующей команде (РС)=(РС)+3  
  11/17 F4 CP B3B2 Вызов подпрограммы, если плюс Если условие верно, то в стеке сохраняется адрес следующей команды (РС)=(РС)+3, затем в (РС)- регистр записывается адрес вызова подпрограммы (В3В2). Иначе переход к следующей команде (РС)=(РС)+3  
  11/17 FC CM B3B2 Вызов подпрограммы, если минус Если условие верно, то в стеке сохраняется адрес следующей команды (РС)=(РС)+3, затем в (РС)- регистр записывается адрес вызова подпрограммы (В3В2). Иначе переход к следующей команде (РС)=(РС)+3  
  11/17 EC CPE B3B2 Вызов подпрограммы, если четно Если условие верно, то в стеке сохраняется адрес следующей команды (РС)=(РС)+3, затем в (РС)- регистр записывается адрес вызова подпрограммы (В3В2). Иначе переход к следующей команде (РС)=(РС)+3  
  11/17 E4 CPO B3B2 Вызов подпрограммы, если нечетно Если условие верно, то в стеке сохраняется адрес следующей команды (РС)=(РС)+3, затем в (РС)- регистр записывается адрес вызова подпрограммы (В3В2). Иначе переход к следующей команде (РС)=(РС)+3  
    C9 RET Безусловный возврат В (РС)-регистр записывается адрес из верхушки стека  
  5/11 D8 RC Возврат, если перенос Если условие верно, то в (РС)-регистр записывается адрес из верхушки стека. Иначе переход к следующей команде (РС)=(РС)+1  
  5/11 D0 RNC Возврат, если не перенос Если условие верно, то в (РС)-регистр записывается адрес из верхушки стека. Иначе переход к следующей команде (РС)=(РС)+1  
  5/11 C8 RZ Возврат, если нуль Если условие верно, то в (РС)-регистр записывается адрес из верхушки стека. Иначе переход к следующей команде (РС)=(РС)+1  
  5/11 C0 RNZ Возврат, если не нуль Если условие верно, то в (РС)-регистр записывается адрес из верхушки стека. Иначе переход к следующей команде (РС)=(РС)+1  
  5/11 F0 RP Возврат, если плюс Если условие верно, то в (РС)-регистр записывается адрес из верхушки стека. Иначе переход к следующей команде (РС)=(РС)+1  
  5/11 F8 RM Возврат, если минус Если условие верно, то в (РС)-регистр записывается адрес из верхушки стека. Иначе переход к следующей команде (РС)=(РС)+1  
  5/11 E8 RPE Возврат, если четно Если условие верно, то в (РС)-регистр записывается адрес из верхушки стека. Иначе переход к следующей команде (РС)=(РС)+1  
  5/11 E0 RPO Возврат, если нечетно Если условие верно, то в (РС)-регистр записывается адрес из верхушки стека. Иначе переход к следующей команде (РС)=(РС)+1  
    C7 RST 0 Рестарт по 0-му уровню В стеке сохраняется адрес следующей команды (РС)= (РС)+1, затем в (РС)-регистр записывается адрес вызова подпрограммы (РС)=8*№рестарта  
    CF RST 1 Рестарт по 1-му уровню В стеке сохраняется адрес следующей команды (РС)= (РС)+1, затем в (РС)-регистр записывается адрес вызова подпрограммы (РС)=8*№рестарта  
    D7 RST 2 Рестарт по 2-му уровню В стеке сохраняется адрес следующей команды (РС)= (РС)+1, затем в (РС)-регистр записывается адрес вызова подпрограммы (РС)=8*№рестарта  
    DF RST 3 Рестарт по 3-му уровню В стеке сохраняется адрес следующей команды (РС)= (РС)+1, затем в (РС)-регистр записывается адрес вызова подпрограммы (РС)=8*№рестарта  
    E7 RST 4 Рестарт по 4-му уровню В стеке сохраняется адрес следующей команды (РС)= (РС)+1, затем в (РС)-регистр записывается адрес вызова подпрограммы (РС)=8*№рестарта  
    EF RST 5 Рестарт по 5-му уровню В стеке сохраняется адрес следующей команды (РС)= (РС)+1, затем в (РС)-регистр записывается адрес вызова подпрограммы (РС)=8*№рестарта  
    F7 RST 6 Рестарт по 6-му уровню В стеке сохраняется адрес следующей команды (РС)= (РС)+1, затем в (РС)-регистр записывается адрес вызова подпрограммы (РС)=8*№рестарта  
    FF RST 7 Рестарт по 7-му уровню В стеке сохраняется адрес следующей команды (РС)= (РС)+1, затем в (РС)-регистр записывается адрес вызова подпрограммы (РС)=8*№рестарта  
    E9 PCHL Запись содержимого Н- пары регистров В (РС)-регистр записывается содержимое (HL)-пары  

 





Поделиться с друзьями:


Дата добавления: 2016-11-24; Мы поможем в написании ваших работ!; просмотров: 592 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Люди избавились бы от половины своих неприятностей, если бы договорились о значении слов. © Рене Декарт
==> читать все изречения...

2446 - | 2243 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.