Команды, изменяющие порядок вычислений Таблица 3.4
Мнемоника |
Формат команды |
Виды адресации |
Число тактов |
Функциональное назначение |
JMP DADDR |
11000011 P P Q Q |
Непосред- ственная |
10 |
Перейти к команде, расположенной в памяти по адресу DADDR: (РС)←QQPP |
JC DADDR |
11011010 P P Q Q |
Непосред- ственная |
10 |
Перейти к команде, расположенной в памяти по адресу DADDR, если С=1, в противном случае – к следующей по порядку команде. Если С=1, то (РС)←QQPP, если С=0, то (РС)←(РС)+3 |
JNC DADDR |
11010010 P P Q Q |
Непосред- ственная |
10 |
Если С=0, то (РС)←QQPP, если С=1, то (РС)←(РС)+3 |
JZ DADDR |
11001010 P P Q Q |
Непосред- ственная |
10 |
Если Z=1, то (РС)←QQPP, если Z=0, то (РС)←(РС)+3 |
JNZ DADDR |
11000010 P P Q Q |
Непосред- ственная |
10 |
Если Z=0, то (РС)←QQPP, если Z=1, то (РС)←(РС)+3 |
JP DADDR |
11110010 P P Q Q |
Непосред- ственная |
10 |
Если S=0, то (РС)←QQPP, если S=1, то (РС)←(РС)+3 |
JM DADDR |
11111010 P P Q Q |
Непосред- ственная |
10 |
Если S=1, то (РС)←QQPP, если S=0, то (РС)←(РС)+3 |
JPE DADDR |
11101010 P P Q Q |
Непосред- ственная |
10 |
Если Р=1, то (РС)←QQPP, если Р=0, то (РС)←(РС)+3 |
JPO DADDR |
11100010 P P Q Q |
Непосред- ственная |
10 |
Если Р=0, то (РС)←QQPP, если Р=1, то (РС)←(РС)+3 |
CALL DADDR |
11001101 P P Q Q |
Стековая, Непосред- ственная |
17 |
Сохранить в стеке содержимое счетчика команд. Вызвать подпрограмму, начальный адрес которой DADDR: ((SP))←(РС), (SP)←(SP)-2, (РС)←QQPP |
CC DADDR |
11011100 P P Q Q |
Стековая, Непосред- ственная |
17(11) |
Если С=1, сохранить в стеке содержимое счетчика команд, вызвать подпрограмму, начальный адрес которой DADDR: ((SP))←(РС), (SP)←(SP)-2, (РС)←QQPP. Если С=0, то (РС)←(РС)+3 |
CNC DADDR |
11010100 P P Q Q |
Стековая, Непосред- ственная |
17(11) |
Если С=0, то ((SP))←(РС), (SP)←(SP)-2, (РС)←QQPP. Если С=1, то (РС)←(РС)+3 |
CZ DADDR |
11001100 P P Q Q |
Стековая, Непосред- ственная |
17(11) |
Если Z=1, то ((SP))←(РС), (SP)←(SP)-2, (РС)←QQPP. Если Z=0, то (РС)←(РС)+3 |
CNZ DADDR |
11000100 P P Q Q |
Стековая, Непосред- ственная |
17(11) |
Если Z=0, то ((SP))←(РС), (SP)←(SP)-2, (РС)←QQPP. Если Z=1, то (РС)←(РС)+3 |
CP DADDR |
11110100 P P Q Q |
Стековая, Непосред- ственная |
17(11) |
Если S=0, то ((SP))←(РС), (SP)←(SP)-2, (РС)←QQPP. Если S=1, то (РС)←(РС)+3 |
CM DADDR |
11111100 P P Q Q |
Стековая, Непосред- ственная |
17(11) |
Если S=1, то ((SP))←(РС), (SP)←(SP)-2, (РС)←QQPP. Если S=0, то (РС)←(РС)+3 |
CPE DADDR |
11101100 P P Q Q |
Стековая, Непосред- ственная |
17(11) |
Если P=1, то ((SP))←(РС), (SP)←(SP)-2, (РС)←QQPP. Если P=0, то (РС)←(РС)+3 |
CPO DADDR |
11100100 P P Q Q |
Стековая, Непосред- ственная |
17(11) |
Если P=0, то ((SP))←(РС), (SP)←(SP)-2, (РС)←QQPP. Если P=1, то (РС)←(РС)+3 |
RET |
11001001 |
Стековая |
10 |
Извлечь из стека 2 байта и поместить их в счетчик команд РС: (РС)←((SP)), (SP)←(SP)+2 |
RC |
11011000 |
Стековая |
11(5) |
Если С=1, то извлечь из стека 2 байта и поместить в счетчик команд РС: (РС)←((SP)), (SP)←(SP)+2. Если С=0, перейти к выполнению следующей по порядку команде: (РС)←(РС)+1 |
RNC |
11010000 |
Стековая |
11(5) |
Если С=0, то (РС)←((SP)), (SP)←(SP)+2. Если С=1, (РС)←(РС)+1 |
RZ |
11001000 |
Стековая |
11(5) |
Если Z=1, то (РС)←((SP)), (SP)←(SP)+2. Если Z=0, (РС)←(РС)+1 |
RNZ |
11000000 |
Стековая |
11(5) |
Если Z=0, то (РС)←((SP)), (SP)←(SP)+2. Если Z=1, (РС)←(РС)+1 |
RP |
11110000 |
Стековая |
11(5) |
Если S=0, то (РС)←((SP)), (SP)←(SP)+2. Если S=1, (РС)←(РС)+1 |
RM |
11111000 |
Стековая |
11(5) |
Если S=1, то (РС)←((SP)), (SP)←(SP)+2. Если S=0, (РС)←(РС)+1 |
RPE |
11101000 |
Стековая |
11(5) |
Если P=1, то (РС)←((SP)), (SP)←(SP)+2. Если P=0, (РС)←(РС)+1 |
RPO |
11100000 |
Стековая |
11(5) |
Если P=0, то (РС)←((SP)), (SP)←(SP)+2. Если P=1, (РС)←(РС)+1 |
RST |
11msk111 |
Стековая |
11 |
Содержимое счетчика команд РС сохранить в стеке и перейти к подпрограмме, начальный адрес которой 0000 0000 00msk000 |