Организация памяти программ ОМЭВМ
4095

 

Банк 1
памяти программ

 

2048

7FFh (2047)

7 страница 0 банка
памяти программ

700h (1792)

6FFh (1791)

6 страница 0 банка
памяти программ

600h (1536)

5FFh (1535)

5 страница 0 банка
памяти программ

500h (1280)

4FFh (1279)

4 страница 0 банка
памяти программ

400h (1024)

3FFh (1023)

3 страница 0 банка
памяти программ

300h (768)

2FFh (767)

2 страница 0 банка
памяти программ

200h (512)

1FFh (511)

1 страница 0 банка
памяти программ

100h (256)

0FFh (255)

0 страница 0 банка
памяти программ

0007 - переход по прерыванию таймера
0006
0005
0004
0003 - переход по внешнему прерыванию
0002
0001
000h (0)

 

Организация памяти данных ОМЭВМ
3Fh (63) 
 
 
20h (32)
1Fh (31)

Первый банк рабочих регистров

18h (24)

17h (23)

 

Стек

 

08h (8)

07h (7)

Нулевой банк рабочих регистров

00h (0)

 

Символы, используемые для операндов команд и зарезервированные символы, используемые ассемблером ОМЭВМ
Символ Значение
A Аккумулятор
R0 Регистр 0  |  (r=0-1) |  Выполняют функции регистров
R1 Регистр 1  |              |   указателей ЗУПВ
R2 Регистр 2  |
R3 Регистр 3  |
R4 Регистр 4  |  Рабочие регистры (Rr)
R5 Регистр 5  |   (r=0-7)
R6 Регистр 6  |
R7 Регистр 7  |
PSW Слово состояния программы
BUS Порт данных
TF Флаговый разряд таймера
P1 Порт ввода/вывода 1
P2 Порт ввода/вывода 2
P4 Порт ввода/вывода 4 |  
P5 Порт ввода/вывода 5 |  Порты
P6 Порт ввода/вывода 6 |  ИС расширителя
P7 Порт ввода/вывода 7 |  
C Флаг переноса
T Регистр таймера
CNT Регистр счётчика событий
TCNT Таймер/счётчик событий
RB0 Нулевой банк рабочих регистров
RB1 Первый банк рабочих регистров
MB0 Нулевой банк памяти
MB1 Первый банк памяти
I Прерывание
TCNTI Прерывание таймера/счётчика
F0 Флаговый разряд 0
F1 Флаговый разряд 1

 

Система команд ОМЭВМ (по алфавиту)
Команда Код команды Количество байт Количество машинных циклов
Байт 1 Байт 2
ADD A, Rr (r=0-7) 0110 1rrr   1 1
ADD A,@Rr (r=0-1) 0110 000r   1 1
ADD A,#data 03h данные 2 2
ADDC A,Rr (r=0-7) 0111 1rrr   1 1
ADDC A,@Rr (r=0-1) 0111 000r   1 1
ADDC A,#data 13h данные 2 2
ANL A,Rr (r=0-7) 0101 1rrr   1 1
ANL A,@Rr (r=0-1) 0101 000r   1 1
ANL A,#data 53h данные 2 2
ANL BUS,#data 98h данные 2 2
ANL Pp,#data (p=1-2) 1001 10pp данные 2 2
ANLD Pp,A (p=4-7) 1001 11pp   1 2
CALL address aaa1 0100 адрес 2 2
CLR A 27h   1 1
CLR C 97h   1 1
CLR F1 A5h   1 1
CLR F0 85h   1 1
CPL A 37h   1 1
CPL C A7h   1 1
CPL F0 95h   1 1
CPL F1 B5h   1 1
DA A 57h   1 1
DEC A 07h   1 1
DEC Rr (r=0-7) 1100 1rrr   1 1
DIS I 15h   1 1
DIS TCNTI 35h   1 1
DJNZ Rr, address (r=0-7) 1110 1rrr адрес 2 2
EN I 05h   1 1
EN TCNTI 25h   1 1
ENTO CLK 75h   1 1
IN A, Pp (p=1-2) 0000 10pp   1 2
INC A 17   1 1
INC Rr (r=0-7) 0001 1rrr   1 1
INC @Rr (r=0-1) 0001 000r   1 1
INS A,BUS 08h   1 2
JBb address bbb1 0010 адрес 2 2
JC address F6h адрес 2 2
JF0 address B6h адрес 2 2
JF1 address 76h адрес 2 2
JMP address aaa0 0100 адрес 2 2
JMPP @A B3h   1 2
JNC address E6h адрес 2 2
JNI address 86h адрес 2 2
JNT0 address 26h адрес 2 2
JNT1 address 46h адрес 2 2
JNZ address 96h адрес 2 2
JTF address 16h адрес 2 2
JT0 address 36h адрес 2 2
JT1 address 56h адрес 2 2
JZ address C6h адрес 2 2
MOV A,#data 23h данные 2 2
MOV A,PSW C7h   1 1
MOV A,Rr (r=0-7) 1111 1rrr   1 1
MOV A,@Rr (r=0-1) 1111 000r   1 1
MOV A,T 42h   1 1
MOV PSW,A D7h   1 1
MOV Rr,A (r=0-7) 1010 1rrr   1 1
MOV Rr,#data (r=0-7) 1011 1rrr данные 2 2
MOV @Rr,A (r=0-1) 1010 000r   1 1
MOV @Rr,#data (r=0-1) 1011 000r данные 2 2
MOV T,A 62h   1 1
MOVD A,Pp (p=4-7) 0000 11pp   1 2
MOVD Pp,A (p=4-7) 0011 11pp   1 2
MOVP A,@A A3h   1 2
MOVP3 A,@A E3h   1 2
MOVX A,@Rr (r=0-1) 1000 000r   1 2
MOVX @Rr,A (r=0-1) 1001 000r   1 2
NOP 0h   1 1
ORL A,Rr (r=0-7) 0100 1rrr   1 1
ORL A,@Rr (R=0-1) 0100 000r   1 1
ORL A,#data 43h данные 2 2
ORL BUS,#data 88h данные 2 2
ORL Pp,#data (p=1-2) 1000 10pp данные 2 2
ORLD Pp,A (p=4-7) 1000 11pp   1 2
OUTL BUS,A 02h   1 2
OUTL Pp,A 0011 10pp   1 2
RET 83h   1 2
RETR 93h   1 2
RL A E7h   1 1
RLC A F7h   1 1
RR A 77h   1 1
RRC A 67h   1 1
SEL MB0 75h   1 1
SEL MB1 F5h   1 1
SEL RB0 C5h   1 1
SEL RB1 D5h   1 1
STOP TCNT 65h   1 1
STRT CNT 45h   1 1
STRT T 55h   1 1
SWAP A 47h   1 1
XCH A,Rr (r=0-7) 0010 1rrr   1 1
XCH A,@Rr (r=0-1) 0010 000r   1 1
XCHD A,@Rr (r=0-1) 0011 000r   1 1
XRL A,Rr (r=0-7) 1101 1 rrr   1 1
XRL A,@Rr (r=0-1) 1101 000r   1 1
XRL A,#data D3h данные 2 2

 

Система команд однокристальных микроЭВМ
Наименование команды Операнды Машинный код Количество циклов Действие Описание команды
1.Команды передачи данных
MOV A,Rr
(r=0-7)
1111 1rrr 1 (A)<-(Rr) Передача содержимого РОН в А
MOV Rr,A
(r=0-7)
1010 1rrr 1 (Rr)<-(A) Передача содержимого А в РОН
MOV A,@Rr
(r=0-1)
1111 000r 1 (A)<-((Rr)) Передача содержимого ячейки памяти данных в A.
Содержимое A, передаётся в ячейку памяти данных, адресуемой разрядами 0-5 регистра "r", передаётся в A. Содержимое регистра "r" не меняется
MOV @Rr,A
(r=0-1)
1010 000r 1 ((Rr))<-(A) Передача содержимого A в память данных.
Содержимое ячейки памяти данных, адресуемой разрядами 0-5 регистра "r", передаётся в A. Содержимое регистра "r" не меняется
MOVX A,@Rr
(r=0-1)
1000 000r 2 (A)<-((Rr)) Передача содержимого ячейки внешней памяти данных в A.
Содержимое A, передаётся в ячейку памяти данных, адресуемой разрядами 0-5 регистра "r", передаётся в A. Содержимое регистра "r" не меняется
MOVX @Rr,A
(r=0-1)
1001 000r 2 ((Rr))<-(A) Передача содержимого A во внешнюю память данных.
Содержимое ячейки памяти данных, адресуемой разрядами 0-5 регистра "r", передаётся в A. Содержимое регистра "r" не меняется
MOV Rr,#data
(r=0-7)
1011 1rrr
данные
2 (Rr)<-данные Непосредственная передача данных в РОН
MOV @Rr,#data
(r=0-1)
1011 000r
данные
2 ((Rr))<-данные Непосредственная передача данных в память данных.
8-разрядный код данных передаётся в ячейку резидентной памяти данных, адресуемую разрядами 0-5 регистра "r"
MOV A,#data 0010 0011
данные
2 (A)<-данные Непосредственная передача данных в A
MOV A,PSW 1100 0111 1 (A)<-(PSW) Передача регистра состояния в A
MOV PSW,A 1101 0111 1 (PSW)<-(A) Передача содержимого A в регистр состояний.
В результате этой передачи изменяются все биты условий и указатель стека
MOV A,T 0100 0010 1 (A)<-(T) Передача содержимого регистра таймера/счётчика в A
MOV T,A 0110 0010 1 (T)<-(A) Передача содержимого A в регистр таймера/счётчика
MOVP A,@A 1010 0011 2 (PC 0-7)<-(A)
(A)<-((PC))
Передача данных текущей страницы в A.
Содержимое ячейки памяти программ, адресуемой A, передаётся в A. Изменяются 0-7 разряды счётчика команд в пределах текущей страницы. После выполнения этой команды происходит восстановление содержимого счётчика команд.
Примечание: Если эта команда записана в 255 ячейке страницы, то аккумулятор адресует ячейку, расположенную на следующей странице.
MOVP3 A,@A 1110 0011 2 (PC 0-7)<-(A)
(PC 8-10)<-011b
(A)<-((PC))
Передача данных третьей страницы в А.
Содержимое ячейки памяти программ, находящееся на третьей странице и адресуемой аккумулятором, передаётся в A. После выполнения этой команды происходит восстановление счётчика команд.
XCH A,Rr
(r=0-7)
0010 1rrr 1 (A)<->(Rr) Обмен содержимого аккумулятора и РОН
XCH A,@Rr
(r=0-1)
0010 000r 1 (A)<->((Rr)) Обмен содержимого аккумулятора и содержимого ячейки памяти данных.
Содержимое аккумулятора обменивается с содержимым ячейки памяти данных, адресуемой разрядами 0-5 регистра "r". Содержимое "r" не изменяется
XCHD A,@Rr
(r=0-1)
0011 000r 1 (A 0-3)<->((Rr 0-3)) Обмен четырёх младших разрядов A с содержимым четырёх младших разрядов ячейки памяти данных.
По этой команде происходит обмен 0-3 разрядов A с разрядами 0-3 ячейки памяти данных, адресуемой 0-5 разрядами регистра "r". 4-7 разряды аккумулятора и ячейки памяти данных, а также содержимое регистра "r" остаются без изменений.
SWAP A 0100 0111 1 (A 4-7)<->(A 0-3) Обмен местами сожержимого четёрых младших и четырёх старших разрядов A.
Содержимое 0-3 разрядов A меняется местами соответственно с содержимым 4-7 разрядов A.
IN A,Pp
(p=1,2)
0000 10pp 2 (A)<-(Pp) Данные, поступившие на порты 1-2, передаются в A
INS A,BUS 0000 1000 2 (A)<-(BUS) Стробируемый ввод данных из порта данных в A.
Данные из порта данных передаются (считываются) в A по заднему фронту -RD
OUTL Pp,A
(p=1,2)
0011 10pp 2 (Pp)<-(A) Вывод данных из A в порт 1-2 и фиксация
OUTL BUS,A 0000 0010 2 (BUS)<-(A) Вывод данных из A в порт данных.
Данные из A передаются в порт данных и фиксируются до тех пор пока не поступит новая команда "OUTL". Любая другая команда, требующая использования порта данных (за исключением команды INS) разрушает содержимое порта данных. К ним относятся команды по расширению памяти (например команда MOVX).
MOVD A,Pp
(p=4-7)
0000 11pp 2 (A 0-3)<-(Pp)
(A 4-7)<-0
Передать данные из порта (4-7) в A.
Данные из порта "p" ИС расширителя передаются в 0-3 разряды A. 4-7 разряды аккумулятора обнуляются. Разряды 0-1 кода операции используются для кодирования номера портов 4-7 следующим образом:
Разряд(10)Порт
004
015
106
117
MOVD Pp,A
(p=4-7)
0011 11pp 2 (Pp)<-(A 0-3) Передача содержимого 0-3 разрядов A в порт 4-7.
Содержимое 0-3 разрядов A передаётся в порт "р" ИС расширителя. Содержимое 4-7 разрядов A не меняется. Разряды 0-1 кода операции используются для кодирования номера портов 4-7 следующим образом:
Разряд(10)Порт
004
015
106
117
2.Команды преобразования данных
ANL A,Rr
(r=0-7)
0101 1rrr 1 (A)<-(A) AND (Rr) Логическое "И" соержимого A с маской, содержащейся в РОН
ORL A,Rr
(r=0-7)
0100 1rrr 1 (A)<-(A) OR (Rr) Логическое "ИЛИ" содержимого A с маской, содержащейся в РОН
XRL A,Rr
(r=0-7)
1101 1rrr 1 (A)<-(A) XOR (Rr) Исключающее "ИЛИ" содержимого A с маской, содержащейся в РОН
ANL A,@Rr
(r=0-1)
0101 000r 1 (A)<-(A) AND ((Rr)) Логическое "И" содержимого A с маской, содержащейся в ячейке памяти данных, адресуемой разрядами 0-5 регистра "r"
ORL A,@Rr
(r=0-1)
0100 000r 1 (A)<-(A) OR ((Rr)) Логическое "ИЛИ" содержимого A с маской, содержащейся в ячейке памяти данных, адресуемой разрядами 0-5 регистра "r"
XRL A,@Rr
(r=0-1)
1101 000r 1 (A)<-(A) XOR ((Rr)) Исключающее "ИЛИ" содержимого A с маской, содержащейся в ячейке памяти данных, адресуемой разрядами 0-5 регистра "r"
ANL A,#data 0101 0011
данные
2 (A)<-(A) AND данные Логическое "И" содержимого A с непосредственной маской данных
ORL A,#data 0100 0011
данные
2 (A)<-(A) OR данные Логическое "ИЛИ" содержимого A с непосредственной маской данных
XRL A,#data 1101 0011
данные
2 (A)<-(A) XOR данные Исключающее "ИЛИ" содержимого A с непосредственной маской данных
ANL Pp,#data
(p=1-2)
1001 10pp
данные
2 (Pp)<-(Pp) AND данные Логическое "И" данных на портах 1-2 с непосредственной маской данных
ANL BUS,#data 1001 1000
данные
2 (BUS)<-(BUS) AND данные Логическое "И" содержимого порта данных с непосредственной маской данных. Перед этой командой должна пройти команда OUTL BUS,A
ORL Pp,#data
(p=1-2)
1000 10pp
данные
2 (Pp)<-(Pp) OR данные Логическое "ИЛИ" данных на портах 1-2 с непосредственной маской данных
ORL BUS,#data 1000 1000
данные
2 (BUS)<-(BUS) OR данные Логическое "ИЛИ" содержимого порта данных с непосредственной маской данных.
Перед этой командой должна пройти команда OUTL BUS,A
ANLD Pp,A
(p=4-7)
1001 11pp 2 (Pp)<-(Pp) AND (A0-3) Логическае "И" содержимого порта (4-7) с маской, содержащейся в A.
Логическое "И" данных порта "p" с маской содержащейся в разрядах 0-3 аккумулятора. Результат записывается в порт "p". Содержимле A не меняется.
Примечание: номер порта "p" кодируется разрядами 0-1 кода операции следующим образом:
Разряд(10)Порт
004
015
106
117
ORLD Pp,A
(p=4-7)
1000 11pp 2 (Pp)<-(Pp) OR (A0-3) Логическае "ИЛИ" содержимого порта (4-7) с маской, содержащейся в A.
Логическое "ИЛИ" данных порта "p" с маской содержащейся в разрядах 0-3 аккумулятора. Результат записывается в порт "p". Содержимле A не меняется.
Примечание: номер порта "p" кодируется разрядами 0-1 кода операции следующим образом:
Разряд(10)Порт
004
015
106
117
RR A 0111 0111 1 (An)<-(An+1)
(A7)<-(A0)
n=0-6
Циклический сдвиг вправо без переноса.
Содержимое A сдвигается на один разряд. 0 разряд переходит на позицию 7 разряда.
RL A 1110 0111 1 (An+1)<-(An)
(A0)<-(A7)
n=0-6
Циклический сдвиг влево без переноса.
Содержимое A сдвигается на один разряд. 7 разряд переходит на позицию 0 разряда.
RRC A 0110 0111 1 (An)<-(An+1)
(A7)<-(C)
(C)<-(A0)
n=0-6
Циклический сдвиг вправо с переносом.
Содержимое A сдвигается на один разряд. 0 разряд переходит на позицию разряда переноса. Разряд переноса переходит на позицию 7 разряда.
RLC A 1111 0111 1 (An+1)<-(An)
(A0)<-(C)
(C)<-(A7)
n=0-6
Циклический сдвиг влево с переносом.
Содержимое A сдвигается на один разряд. 7 разряд переходит на позицию разряда переноса. Разряд переноса переходит на позицию 0 разряда.
INC @Rr
(r=0-1)
0001 000r 1 ((Rr))<-((Rr))+1 Инкремент содержимого ячейки памяти данных.
Содержимое ячейки резидентой памяти данных, адресуемой 0-5 разрядами регистра "r" инкрементируется на 1.
DEC A 0000 0111 1 (A)<-(A)-1 Декремент содержимого A.
Содержимое A уменьшается на 1.
DEC Rr
(r=0-7)
1100 1rrr 1 (Rr)<-(Rr)-1 Декрементирование содержимого РОН.
Содержимое рабочего регистра уменьшается на 1.
DJNZ Rr,address
(r=0-7)
1110 1rrr
адрес
2 (Rr)<-(Rr)-1
Если (Rr)<>0,
(PC 0-7)<-адрес
Декрементирование содержимого РОН и тестирование.
Содержимое регистра "r" уменьшается на 1 и тестируется на "0". Если регистр содержит только нули, управление программоу передаётся следующей команде. Если содержимое регистра не 0, происходит переход по указанному во втором байте адресу. В этом случае 8-разрядный регистр адреса обеспечивает возможность адресования к 256 ячейкам текущей страницы.
ADD A,Rr
(r=0-7)
0110 1rrr 1 (A)<-(A)+(Rr) Сложение содержимого РОН и содержимого A.
ADDC A,Rr
(r=0-7)
0111 1rrr 1 (A)<-(A)+(Rr)+(C) Сложение содержимого разряда переноса и содержимого РОН с содержимым A.
Содержимое разряда переноса складывается с содержимым нулевого разряда A и разряд переноса очищается. Затем содержимое регистра "r" складывается с содержимым A.
ADD A,@Rr
(r=0-1)
0110 000r 1 (A)<-(A)+((Rr)) Сложение содержимого ячейки памяти данных с содержимым A.
Содержимое ячейки памяти данных, адресуемой 0-5 разрядами регистра "r", складывается с содержимым A.
ADDC A,@Rr
(r=0-1)
0111 000r 1 (A)<-(A)+((Rr))+(C) Сложение содержимого разряда переноса и содержимого ячейки памяти данных с содержимым A.
Содержимое разряда переноса складывается с содержимым 0 разряда A, и разряд переноса очищается. Затем содержимое ячейки памяти данных, адресуемой 0-5 разрядами регистра "r", складывается с содержимым A.
ADD A,#data 0000 0011
данные
2 (A)<-(A)+данные Непосредственное сложение данных с содержимым A.
ADDC A,#data 0001 0011
данные
2 (A)<-(A)+данные+(C) Сложение содержимого разряда переноса и данных с содержимым A.
Содержимое разряда переноса складывается с нулевым разрядом A, и разряд переноса очищается. Затем производится непосредственное сложение данных с содержимым A.
CLR A 0010 0111 1 (A)<-0 Обнулить A
CPL A 0011 0111 1 (A)<-NOT (A) Инвертирование содержимого A
. Код, содержащийся в A, заменяется на обратный. Каждая единица заменяется на ноль и наоборот.
DA A 0101 0111 1   Десятичная коррекция A.
Двоичный код A представляется в двоично-десятичной форме в виде двух 4-разрядных цифр. Как правило, эта операция следует за операцией сложения. Содержимое бита переноса изменяется. Если содержимое 0-3 разрядов A больше 9, или промежуточный бит переноса равен 1, содержимое A инкрементируется на 6. Затем проверяются четыре старших разряда. Если содержимое 4-7 разрядов больше 9, или если бит переноса - 1, содержимое этих разрядов увеличивается на 6. Если имеет место переполнение, бит переноса устанавливается в 1, если нет переполнения, он устанавливается в 0.
INC A 0001 0111 1 (A)<-(A)+1 Инкрементирование содержимого A.
Содержимое A увеличивается на 1.
INC Rr
(r=0-7)
0001 1rrr 1 (Rr)<-(Rr)+1 Инкрементирование содержимого РОН.
Содержимое рабочего регистра "r" увеличивается на 1.
CLR C 1001 0111 1 (C)<-0 Очистка разряда переноса.
Во время выполнения программы разряд переноса может быть установлен в 1 командами ADD, ADDC, RLC, RRC, CPL C, DA. Команда CLR C позволяет обнулить разряд переноса.
CPL C 1010 0111 1 (C)<-NOT (C) Инвертирование содержимого разряда переноса.
CLR F0 1000 0101 1 (F0)<-0 Содержимое флагового разряда (F0) устанавливается в 0
CPL F0 1001 0101 1 (F0)<-NOT (F0) Инвертирование содержимого флагового разряда (F0)
CLR F1 1010 0101 1 (F1)<-0 Содержимое флагового разряда (F1) устанавливается в 0
CPL F1 1011 0101 1 (F1)<-NOT (F1) Инвертирование содержимого флагового разряда (F1)
EN I 0000 0101 1   Разрешение внешних прерываний.
Внешние прерывания разрешаются сигналом низкого уровня на входе -INT
DIS I 0001 0101 1   Запрещение внешних прерываний.
ОМЭВМ не реагирует на поступление низкого уровня на входе -INT
EN TCNTI 0010 0101 1   Разрешение прерываний по переполнению таймера/счётчика событий.
Переполнение таймера счётчика событий запускает последовательность обработки прерываний.
DIS TCNTI 0011 0101 1   Запрещение прерываний по переполнению таймера/счётчика событий.
STRT T 0101 0101 1   Запуск таймера.
Накомпление происходит в регистре таймера, который инкрементируется через каждые 32 командных цикла. Счётчик командных циклов начинает счёт с нуля.
STRT CNT 0100 0101 1   Запуск счётчика событий.
Регистр счётчика событий инкрементируется каждый раз, когда на выводе T1 происходит переход уровня напряжения с высокого на низкий.
STOP TCNT 0110 0101 1   Останов таймера/счётчика событий
ENTO CLK 0111 0101 1   Разрешение вывода импульсов синхронизации.
Эта функция запрещается командой системного сброса.
SEL MB0 1110 0101 1 (DBF)<-0 Выбор нулевого (MB0) банка памяти программ.
11 разряд счётчика команд устанавливается в 0. Нулевой банк размещён в ячейках 0-2047 памяти программ.
SEL MB1 1111 0101 1 (DBF)<-1 Выбор первого (MB1) банка памяти программ.
11 разряд счётчика команд устанавливается в 1. Первый банк размещён в ячейках 2048-4095 памяти программ.
SEL RB0 1100 0101 1 (BS)<-0 Выбор нулевого банка рабочих регистров.
4 разряд регистра состояний устанавливается в 0. Рабочие регистры 0-7 занимают 0-7 ячейки памяти данных.
SEL RB1 1101 0101 1 (BS)<-1 Выбор первого банка рабочих регистров.
4 разряд регистра состояний устанавливается в 1. Рабочие регистры 0-7 занимают 24-31 ячейки памяти данных.
NOP   0000 0000 1   Нет операции.
Программа продолжается со следующей команды.
3.Команды передачи управления
CALL address aaa1 0100
адрес
2 ((SP))<-(PC),(PSW4-7)
(PC8-10)<-адрес 8-10
(PC0-7)<-адрес 0-7
(PC11)<-(DBF)
(SP)<-(SP)+1
Вызов подпрограммы.
Содержимое счётчика команд и содержимое 4-7 разрядов регистра состояний засылаются в стек. Указатель стека (содержимое 0-2 разрядов регистра состояний) изменяется. Управление программой передаётся в ячейку с адресом указанным в данной команде. Содержимое 11 разряда счётчика команд определяется последней командой SEL MB. После возвращения из подпрограммы выполнение программы продолжается с команды, следующей за командой CALL.
RET   1000 0011 2 (SP)<-(SP)-1
(PC)<-((SP))
Возврат из подпрограммы без восстановления содержимого регистра состояний.
Содержимое указателя стека (0-2 разряды регистра состяний) декрементируются. Содержимое счётчика команд восстанавливается из стека. Содержимое 4-7 разрядов регистра состояний не восстанавливается.
RETR   1001 0011 2 (SP)<-(SP)-1
(PC)<-((SP))
(PSW 4-7)<-((SP))
Возврат из подпрограммы (в т.ч. обслуживания прерываений) с восстановлением содержимого регистра состояний.
Указатель стека декрементируется. Содержимое счётчика команд и содержимое 4-7 разрядов регистра состояний восстанавливаются из стека.
JMP address aaa0 0100
адрес
2 (PC8-10)<-адрес 8-10
(PC0-7)<-адрес 0-7
(PC11)<-(DBF)
Безусловный переход по адресу, указанному в данной команде.
Содержимое 0-10 разрядов счётчика команд замещаются непосредственно указанным в команде адресом. Содержимое 11 разряда счётчика команд определяется последней командой SEL MB.
JMPP @A 1011 0011 2 (PC0-7)<-((A)) Безусловный переход по адресу, содержащемуся в аккумуляторе.
Переход осуществляется внутри текущей страницы памяти программ. Содержимое аккумулятора (разряды 0-7) загружаются в счётчик команд. 8-11 разряды счётчика команд на изменяются.
JC address 1111 0110
адрес
2 Если C=1,
(PC0-7)<-адрес
Если C=0
(PC)<-(PC)+2
Переход, если разряд переноса установлен в 1.
Управление программой передаётся по указанному адресу, если разряд переноса установлен в 1.
JNC address 1110 0110
адрес
2 Если C=0,
(PC0-7)<-адрес
Если C=1
(PC)<-(PC)+2
Переход, если разряд переноса установлен в 0.
Управление программой передаётся по указанному адресу, если разряд переноса установлен в 0.
JZ address 1100 0110
адрес
2 Если (A)=0,
(PC0-7)<-адрес
Если (A)<>0
(PC)<-(PC)+2
Переход, если содержимое A равно 0.
Управление программой передаётся по указанному адресу, если в момент выполнения этой команды во всех разрядах A нули. Содержимое A контролируется постоянно.
JNZ address 1001 0110
адрес
2 Если (A)<>0,
(PC0-7)<-адрес
Если (A)=0
(PC)<-(PC)+2
Переход, если содержимое A не 0.
Управление программой передаётся по указанному адресу, если в момент выполнения этой команды содержимое A не 0. Содержимое A контролируется постоянно.
JF0 address 1011 0110
адрес
2 Если F0=1,
(PC0-7)<-адрес
Если F0=0
(PC)<-(PC)+2
Переход, если флаговый разряд (F0) установлен в 1.
Управление программой передаётся по указанному адресу, если флаговый разряд (F0) установлен в 1.
JF1 address 0111 0110
адрес
2 Если F1=1,
(PC0-7)<-адрес
Если F1=0
(PC)<-(PC)+2
Переход, если флаговый разряд (F1) установлен в 1.
Управление программой передаётся по указанному адресу, если флаговый разряд (F1) установлен в 1.
JT0 address 0011 0110
адрес
2 Если T0=1,
(PC0-7)<-адрес
Если T0=0
(PC)<-(PC)+2
Переход, если уровень TEST0 высокий.
Управление программой передаётся по указанному адресу, если уровень сигнала TEST0 высокий (равен 1).
JNT0 address 0010 0110
адрес
2 Если T0=0,
(PC0-7)<-адрес
Если T0=1
(PC)<-(PC)+2
Переход, если уровень TEST0 низкий.
Управление программой передаётся по указанному адресу, если уровень сигнала TEST0 низкий (равен 0).
JT1 address 0101 0110
адрес
2 Если T1=1,
(PC0-7)<-адрес
Если T1=0
(PC)<-(PC)+2
Переход, если уровень TEST1 высокий.
Управление программой передаётся по указанному адресу, если уровень сигнала TEST1 высокий (равен 1).
JNT1 address 0100 0110
адрес
2 Если T1=0,
(PC0-7)<-адрес
Если T1=1
(PC)<-(PC)+2
Переход, если уровень TEST1 низкий.
Управление программой передаётся по указанному адресу, если уровень сигнала TEST1 низкий (равен 0).
JTF address 0001 0110
адрес
2 Если TF=1,
(PC0-7)<-адрес
Если TF=0
(PC)<-(PC)+2
Переход, если флаговый разряд таймера установлен в 1.
Управление программой передаётся по указанному адресу, если разряд флага таймера установлен в 1, т.е. регистр таймер/счётчик событий переполнен. Тестирование флагового разряда устанавливает его в 0. Переполнение запускает последовательность обслуживания прерываний, если прерывание разрешено.
JNI address 1000 0110
адрес
2 Если I=0,
(PC0-7)<-адрес
Если I=1
(PC)<-(PC)+2
Переход, если на входе прерывания низкий уровень.
Управление передаётся по указанному в команде адресу, если уровень входного сигнала прерывания низкий (равен 0), т.е. запрос на внешние прерывания поступил. Этот сигнал запускает последовательность обслуживания прерываний, если внешние прерывания разрешены.
JBb address bbb1 0010
адрес
2 Если Bb=1,
(PC0-7)<-адрес
Если Bb=0
(PC)<-(PC)+2
Переход, если один из разрядов A установлен в 1.
Управление передаётся по указанному в команде адресу, если "b" разряд A установлен в 1.