Команды для работы с подпрограммами
CY Z Р/V S N Н
CALL nn SP - 2 - SP; PC - (SP); nn - PC......
Безусловный переходу подпрограмме, расположен ной по адресу пп. адрес
глсдующри з<1 CAU. команды вписывается в стек.
CALL сс,пп SP - 2 - SP; PC - (SP); nn - PC • ? • • •
(при выполнении условия сс)
где сс - NZ - не иопь (флаг Z=0);
Z - ноль (фляг Z«=1);
NC - нет переносе (флаг CY«0);
С - перенос (флаг CY»1);
РО - нечетность (флаг P/VaO);
Р£ - четность (флаг P/V»t);
Р - положительное (флаг S«0);
М - отрицательное (флаг $»1 у.
Условный переход к подпрограмме» расположенной по адресу пп. Переход
осуществляется при выполнении условия сс, в противном случае команда
игнорируется и управление передается следующей команде программы.
__ . . м, CY Г P/V S N И
RET (SP) - PC; SP + 2 - SP ......
Безусловный возврат из подпрограммы. Управление передается команде,
расположенной по адресу, извлекаемому из стека.
„„ ___ м ^ п _ CY Z P/V S N Н
RET сс (SP) - PC; SP + 2 - SP ......
(при выполнении условия сс)
где сс- NZ, Z, NC, С, РО, PC, Р. М (см. CALL сепп).
Условный возврат нз подпрограммы. Возврат из подпрограммы происходит
при выполнении условия сс, в противном случае команда игнорируется.
СУ Z P/V S N Н
RETI IFF2 - IFF1; (SP) - PC; SP+2 -* SP......
Возврат из маскируемого прерывания.
CY Z P/V S N Н
RETN IFF2 - IFF1; (SP) - PC; SP+2 - SP.....•
Возврат из немаскируемого прерывания.
CY Z P/V S N Н
RST р SP — 2 -* SP; PC - (SP); р -*, PC ......
где р - 0, 8, 16, 24, 32, 40, 48 или 56.
Командное прерывание. Везугловчый переход к подпрограмме, расположен-
ной но фиксированному адресу р; наполняется аналогично команде CALL р.
Команды условного и безусловного перехода
CY Z P/V S N Н
JP nn nn PC ••••••
Безусловный переход по абсолютному адресу. Управление передается
команде, расположенной но адресу nn.
CY Z P/V S N H
JP cc,nn nn PC ••••••
(при выполнении условия cc)
где cc - NZ, Z, NC, С, PO, РЕ, P, M (см. CALL cc,nn).
Условный переход по абсолютному адресу. Передача управления проис-
ходит только при выполнении условия сс, в противном случае выполня-
ется следующая команда программы.
CYZP/VS N Н
JR е PC + е PC ......
где е - смещение относительно текущего адреса.
Безусловный переход по относительному адресу. Уирамление передается
команде, расположенной но адресу, полученному прибавлением смеще-
ния е к текущему значению счетчика команд.
CY Z P/V S N Н
JR сс,е PC + е -* PC ......
(при выполнении условия сс)
где е - смещение относительно текущего адреса;
сс — NZ — не ноль (флаг Z=0);
Z — ноль (флаг Z=1);
NC — нет переноса (флаг CY=0);
С — перенос (флаг CY=1).
Условный переход по относительному адресу. Передача управления про-
исходит только при выполнении условия сс, в противном случае выпол-
няется следующая команда программы
t I CY Z P/V S N Н
JP Iss) ss - PC ......
где ss - HL, IX или IY.
Безусловный переход по адресу, содержащемуся н региггрс» ss.
_ В-1 - 8 CY Z P/V S N н
DJNZ е нет ......
В=0? - • РС+е - PC
♦ да
Условный переход по относительному адресу при ненулевом счетчике.
Значение регистра В уменьшается на единицу. Ьслн при этом В*0, то
осуществляется переход по адресу РС+е , и противном случае управление
передается следующей команде программы. Команда удобна для органи-
зации циклом, счетчиком повторения в которых служит регистр В.