Инструменты пользователя

Инструменты сайта


msx:assembler_programming_guide-fakhrutdinov_bocharov:11

Первая страницаПредыдущая страницаНазад к обзоруСледующая страницаПоследняя страница

Приложение 1. Система команд микропроцессора Z80

В приложении приводится полный список команд микропроцессора Z80 фирмы Zilog. Дана мнемоника команд Zilog и соответствующая мнемоника для микропроцессора Intel 8080 фирмы Intel, описано действие команд, время выполнения команд.

Принятые сокращения и обозначения

Сокращение Описание
A регистр А
I регистр I контроля вектора прерываний
R регистр памяти R
r регистр A, B, C, D, E, H или L
r1
HL регистровая пара HL
состояние флага не изменяется
0 флаг сбрасывается в 0
1 флаг устанавливается в 1
X флаг не определён
? состояние флага зависит от результата операции
V если было переполнение — 1, нет — 0
P если количество единичных битов результата чётно (или ноль) — 1, нечётно — 0
d смещение
n 8–ми битная константа
nn 16–ти битная константа или адрес
IFF триггер разрешения прерывания
dd регистр BC, DE, HL, SP
qq регистр BC, DE, HL, AF
pp регистр BC, DE, IX, SP
rr регистр BC, DE, IY, SP
b бит номер 0, 1, 2, 3, 4, 5, 6 или 7
cc условие NZ, Z, NC, C, PO ,PE , P или M
p адрес рестарта 0, 8h, 10h, 18h, 20h, 28h, 30h или 38h
e смещение при относительной адресации
s/b указывает на бит b ячейки s
CY триггер (флаг) переноса C
() косвенная адресация по содержимому операнда
ЧЦ число циклов
ЧТ число тактов
Дл длина команды в байтах

Группа команд 8-разрядной загрузки

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

Мнемокод Символическое описание Флаги Дл ЧЦ ЧТ Intel 8080
C Z V S N H
LD r,r1r ⇐ r1 1 1 4 MOV R,R'
LD A,IA⇐I,PV=IFF ? ? ? 0 0 2 2 9
LD A,RA ⇐ R 2 2 9
LD I,AI ⇐ A 2 2 9
LD R,AR ⇐ A 2 2 9
LD r,nr ⇐ n 2 2 7 MVI R,N
LD r,(HL)r ⇐ (HL) 1 2 7 MOV R,M
LD r,(IX+d)r ⇐ (IX+d) 3 5 19
LD r,(IY+d)r ⇐ (IY+d) 3 5 19
LD A,(BC)A ⇐ (BC) 1 2 7 LDAX B
LD A,(DE)A ⇐ (DE) 1 2 7 LDAX D
LD A,(nn)A ⇐ (nn) 3 4 13 LDA NN
LD (HL),r(HL) ⇐ r 1 2 7 MOV M,R
LD (IX+d),r(IX+d) ⇐ r 3 5 19
LD (IY+d),r(IY+d) ⇐ r 3 5 19
LD (BC),A(BC) ⇐ A 1 2 7 STAX B
LD (DE),A(DE) ⇐ A 1 2 7 STAX D
|LD (nn),A(nn) ⇐ A 3 4 13 STA NN
LD (HL),n(HL) ⇐ n 2 3 10 MVI M,N
LD (IX+d),n(IX+d)⇐n 4 5 19
LD (IY+d),n(IY+d)⇐n 4 5 9

Группа команд 16-разрядной загрузки

Мнемокод Символическое описание Флаги Дл ЧЦ ЧТ Intel 8080
C Z V S N H
LD dd,nndd⇐nn 3 3 10 LXI DD,NN
LD IX,nnIX⇐nn 4 4 14
LD IY,nnIY⇐nn 4 4 14
LD dd,(nn)dd⇐(nn) 4 6 20
LD HL,(nn)HL⇐(nn) 3 5 16 LHLD NN
LD IX,(nn)IX⇐(nn) 4 6 20
LD IY,(nn)IY⇐(nn) 4 6 20
LD (nn),HL(nn)⇐HL 3 5 16 SHLD NN
LD (nn),dd(nn)⇐dd 4 6 20
LD (nn),IX(nn)⇐IX 4 6 20
LD (nn),IY(nn)⇐IY 4 6 20
LD SP,HLSP⇐HL 1 1 6 SPHL
LD SP,IXSP⇐IX 2 2 10
LD SP,IYSP⇐IY 2 2 10
PUSH qqSP⇐ SP-2
(SP) ⇐ qq
1 3 11 PUSH PSW,
B,D,H
PUSH IXSP⇐ SP-2
(SP) ⇐ IX
2 4 15
PUSH IYSP⇐ SP-2
(SP) ⇐ IY
2 4 15
POP qqqq⇐(SP)
SP ⇐ SP+2

?

?

?

?

?

?
1 3 10 POP PSW,
POP IXIX⇐(SP)
SP ⇐ SP+2
2 4 14
POP IYIY⇐(SP)
SP ⇐ SP+2
2 4 14

Команда POP AF делает содержимое регистра признаков AF равным значению регистра F из стека.

Команды 8-разрядной арифметики

Мнемокод Символическое описание Флаги Дл ЧЦ ЧТ Intel 8080
C Z V S N H
INC rr ⇐ r+1 ? V ? 0 ? 1 1 4 INR R
INC (HL)(HL)⇐(HL)+1 ? V ? 0 ? 1 3 11 INR M
INC (IX+d)(IX+d) ⇐ (IX+d)+1 ? V ? 0 ? 3 6 23
INC (IY+d)(IY+d) ⇐ (IY+d)+1 ? V ? 0 ? 3 6 23
DEC rr ⇐ r-1 ? V ? 1 ? 1 1 4 DEC R
DEC (HL)(HL)⇐(HL)-1 ? V ? 1 ? 1 3 11 DEC M
DEC (IX+d)(IX+d) ⇐ (IX+d)-1 ? V ? 1 ? 3 6 23
DEC (IY+d)(IY+d) ⇐ (IY+d)-1 ? V ? 1 ? 3 6 23
ADD A,rA⇐A+r ? ? V ? 0 ? 1 1 4 ADD R
ADD A,nA⇐A+n ? ? V ? 0 ? 2 2 7 ADI N
ADD A,(HL)A⇐A+(HL) ? ? V ? 0 ? 1 2 7 ADD M
ADD A,(IX+d)A⇐A+(IX+d) ? ? V ? 0 ? 3 5 19
ADD A,(IY+d)A⇐A+(IY+d) ? ? V ? 0 ? 3 5 19
ADC A,rA⇐A+r+CY ? ? V ? 0 ? 1 1 4 ADC R
ADC A,nA⇐A+n+CY ? ? V ? 0 ? 2 2 7 ACI N
ADC A,(HL)A⇐A+(HL)+CY ? ? V ? 0 ? 1 2 7 ADC M
ADC A,(IX+d)A⇐A+(IX+d)+CY ? ? V ? 0 ? 3 5 19
ADC A,(IY+d)A⇐A+(IY+d)+CY ? ? V ? 0 ? 3 5 19
SUB rA⇐A-r ? ? V ? 1 ? 1 1 4 SUB R
SUB nA⇐A-n ? ? V ? 1 ? 2 2 7 SUI N
SUB A,(HL)A ⇐ A-(HL) ? ? V ? 1 ? 1 2 7 SUB M
SUB A,(IX+d)A ⇐ A-(IX+d) ? ? V ? 1 ? 3 5 19
SUB A,(IY+d)A ⇐ A-(IY+d) ? ? V ? 1 ? 3 5 19
SBC A,rA⇐A-r-CY ? ? V ? 1 ? 1 1 4 SBB R
SBC A,nA⇐A-n-CY ? ? V ? 1 ? 2 2 7 SBI N
SBC A,(HL)A⇐A-(HL)-CY ? ? V ? 1 ? 1 2 7 SBB M
SBC A,(IX+d)A⇐A-(IX+d)-CY ? ? V ? 1 ? 3 5 19
SBC A,(IY+d)A⇐A-(IY+d)-CY ? ? V ? 1 ? 3 5 19
NEGA=0-A ? ? V ? 1 ? 2 2 8
DAAДесятичная коррекция ? ? P ? ? 1 1 4 DAA

Группа команд информационного обмена

Эта группа команд позволяет производить обмен данными между регистровыми парами, содержимым стека и регистровой парой; производить смену текущего набора регистров.

Мнемокод Символическое описание Флаги Дл ЧЦ ЧТ Intel 8080
C Z V S N H
EX DE,HLDE ⇔ HL 1 1 4 XCHG
EX AF,AF' AF ⇔ AF' ? ? ? ? ? ? 1 1 4
EXXBC ⇔ BC'
DE ⇔ DE'
HL ⇔ HL'
1 1 4
EX (SP),HLH ⇔ (SP+1)
L ⇔ (SP)
1 5 19 XTHL
EX (SP),IYIY ⇔ (SP) 2 6 23
EX (SP),IXIX ⇔ (SP) 2 6 23

Команды 16-разрядной арифметики

Мнемокод Символическое описание Флаги Дл ЧЦ ЧТ Intel 8080
C Z V S N H
INC dddd⇐dd+1 1 1 6 INX DD
INC IXIX⇐IX+1 2 2 10
INC IYIY⇐IY+1 2 2 10
DEC dddd⇐dd-1 1 1 6 DCX DD
DEC IXIX⇐IX-1 2 2 10
DEC IYIY⇐IY-1 2 2 10
ADD HL,ddHL⇐HL+dd ? 0 X 1 3 11 DAD DD
ADC HL,ddHL⇐HL+dd+CY ? ? V ? 0 X 2 4 15
SBC HL,ddHL⇐HL-dd-CY ? ? V ? 1 X 2 4 15
ADD IX,ppIX⇐IX+pp ? 0 X 2 4 15
ADD IY,rrIY⇐IY+rr ? 0 X 2 4 15

Логические команды

Мнемокод Символическое описание Флаги Дл ЧЦ ЧТ Intel 8080
C Z V S N H
AND rA ⇐A & r 0 ? P ? 0 1 1 1 4 ANA R
AND nA ⇐A & n 0 ? P ? 0 1 2 2 7 ANI N
AND (HL)A ⇐A & (HL) 0 ? P ? 0 1 1 2 7 ANA M
AND (IX+d)A⇐A &(IX+d) 0 ? P ? 0 1 3 5 19
AND (IY+d)A⇐A &(IY+d) 0 ? P ? 0 1 3 5 19
OR rA ⇐A V r 0 ? P ? 0 0 1 1 4 ORA R
OR nA ⇐A V r 0 ? P ? 0 0 2 2 7 ORI N
OR (HL)A ⇐A V (HL) 0 ? P ? 0 0 1 2 7 ORA M
OR (IX+d)A⇐A V(IX+d) 0 ? P ? 0 0 3 5 19
OR (IY+d)A⇐A V(IY+d) 0 ? P ? 0 0 3 5 19
XOR rA ⇐ A × r 0 ? P ? 0 0 1 1 4 XRA R
XOR nA ⇐ A × n 0 ? P ? 0 0 2 2 7 XRI N
XOR (HL)A ⇐ A ×(HL) 0 ? P ? 0 0 1 2 7 XRA M
XOR (IX+d)A⇐A ×(IX+d) 0 ? P ? 0 0 3 5 19
XOR (IY+d)A⇐A ×(IY+d) 0 ? P ? 0 0 3 5 19
CP rA ? r ? ? V ? 1 ? 1 1 4 CPM R
CP nA ? n ? ? V ? 1 ? 2 2 7 CPI N
CP (HL)A ? (HL) ? ? V ? 1 ? 1 2 7 CPM M
CP (IX+d)A ? (IX+d) ? ? V ? 1 ? 3 5 19
CP (IY+d)A ? (IY+d) ? ? V ? 1 ? 3 5 19
CPL Инверсия битов аккумулятора
0 ⇔ 1
1 1 1 1 4 CMA
CCFИнвертировать флаг C ? 0 0 1 1 4 CMC
SCFУстановка C 1 0 0 1 1 4 STC

Kоманды для работы с отдельными разрядами

Мнемокод Символическое описание Флаги Дл ЧЦ ЧТ Intel 8080
C Z V S N H
BIT b,r0=r/b ? ? X X 0 1 2 2 8
BIT b,(HL)0=(HL)/b ? ? X X 0 1 2 3 12
BIT b,(IX+d)0=(IX+d)/b? ? X X 0 1 4 5 20
BIT b,(IY+d)0=(IY+d)/b? ? X X 0 1 4 5 20
SET b,rr/b⇐1 2 2 8
SET b,(HL)(HL)/b⇐1 2 4 15
SET b,(IX+d)(IX+d)/b⇐1 4 6 23
SET b,(IY+d)(IY+d)/b⇐1 4 6 23
RES b,rr/b⇐0 2 2 8
RES b,(HL)(HL)/b⇐0 2 4 15
RES b,(IX+d)(IX+d)/b⇐0 4 6 23
RES b,(IY+d)(IY+d)/b⇐0 4 6 23

Команды работы с портами ввода/вывода

Микропроцессор Intel 8080 имеет всего одну команду ввода и одну команду вывода. Это соответственно IN и OUT. По команде OUT содержимое аккумулятора записывается в порт, номер которого указывается непосредственно в команде. Команда IN позволяет ввести байт из порта ввода/вывода и занести его в аккумулятор.

К системе команд микропроцессора Z80 добавлены команды ввода/вывода блока (как пошаговые, так и автоматические), и ввода/вывода в порт, косвенно адресуемый по содержимому регистра C содержимого любого из основных регистров микропроцессора.

Команды INI и IND устанавливают флаг Z, если B=0.

Команды IN ?,(C) и OUT (C),(HL) не имеют обрабатываемой ассемблером мнемоники, но их можно ввести по машинному коду ED 70 и ED 71 соответственно.

Мнемокод Символическое описание Флаги Дл ЧЦ ЧТ Intel 8080
C Z V S N H
IN A,(n)A ⇐ порт(n) 2 3 11 IN N
IN r,(C)r ⇐ порт(C) ? P ? 0 ? 2 3 12
IN ?,(C)Установка флагов как у
IN r
? P ? 0 ? 2 3 12
INI(HL)⇐порт(C)
B=B-1
HL=HL+1
X 1
?
X X 1 X 2 4 16
INIR(HL)⇐порт(C)
B=B-1
HL=HL+1
Повторить пока B<>0
X 1 X X 1 X 2
2
5
4
21
16
IND(HL)⇐порт(C)
B=B-1
HL=HL-1
X 1
?
X X 1 X 2 4 16
INDR(HL)⇐порт(C)
B=B-1
HL=HL-1
Повторить пока B<>0
X 1 X X 1 X 2
2
5
4
21
16
OUT (n),Aпорт(n)⇐ A 2 3 11 OUT N
OUT (C),rпорт(C)⇐ r 2 3 12
OUT (C),(HL)Установить флаги 2 3 12
OUTIпорт(C)⇐(HL)
B=B-1
HL=HL+1
X 0
?
X X 1 X 2 4 16
OTIRпорт(C)⇐(HL)
B=B-1
HL=HL+1
Повторить пока B<>0
X 1 X X 1 X 2
2
5
4
21
16
OUTDпорт(C)⇐(HL)
B=B-1
HL=HL-1
X ? X X 1 X 2 4 16
OTDRпорт(C)⇐(HL)
B=B-1
HL=HL-1
Повторить пока B<>0
X 1 X X 1 X 2
2
5
4
21
16

Команды перехода

Мнемокод Символическое описание Флаги Дл ЧЦ ЧТ Intel 8080
C Z V S N H
JP nnPC ⇐nn 3 3 10 JMP NN
JP cc,nnЕсли условие cc истинно PC=nn,
иначе продолжить программу
3 3 10 JNZ, JZ,
JNC, JC,
JPO, JPE,
JP, JM NN
JP (HL)PC ⇐HL 1 1 4 PCHL
JP (IX)PC ⇐IX 2 2 8
JP (IY)PC ⇐IY 2 2 8
JR ePC⇐PC+e 2 3 12
JR C,eЕсли C=0, продолжить программу,
иначе PC⇐PC+e
2
2
2
3
7
12
JR NC,eЕсли C=1, продолжить программу,
иначе PC⇐PC+e
2
2
2
3
7
12
JR Z,eЕсли Z=0, продолжить программу,
иначе PC⇐PC+e
2
2
2
3
7
12
JR NZ,eЕсли Z=1, продолжить программу,
иначе PC⇐PC+e
2
2
2
3
7
12
DJNZ eB=B-1
Если B=0 продолжить программу,
иначе PC⇐PC+e
2
2
2
3
8
13

Группа команд сдвига и циклического сдвига

Мнемокод Флаги Дл ЧЦ ЧТ Intel 8080
C Z V S N H
SLA r ? ? P ? 0 0 2 1 4
SLA (HL) ? ? P ? 0 0 2 4 15
SLA (IX+d) ? ? P ? 0 0 4 6 23
SLA (IY+d) ? ? P ? 0 0 4 6 23
SRA r ? ? P ? 0 0 2 1 4
SRA (HL) ? ? P ? 0 0 2 4 15
SRA (IX+d) ? ? P ? 0 0 4 6 23
SRA (IY+d) ? ? P ? 0 0 4 6 23
SRL r ? ? P ? 0 0 2 1 4
SRL (HL) ? ? P ? 0 0 2 4 15
SRL (IX+d) ? ? P ? 0 0 4 6 23
SRL (IY+d) ? ? P ? 0 0 4 6 23
RLA ? 0 0 1 1 4 RAL
RL r ? ? P ? 0 0 2 1 4
RL (HL) ? ? P ? 0 0 2 4 15
RL (IX+d) ? ? P ? 0 0 4 6 23
RL (IY+d) ? ? P ? 0 0 4 6 23
RRA ? 0 0 1 1 4 RAR
RR r ? ? P ? 0 0 2 2 8
RR (HL) ? ? P ? 0 0 2 4 15
RR (IX+d) ? ? P ? 0 0 4 6 23
RR (IY+d) ? ? P ? 0 0 4 6 23
RLCA ? 0 0 1 1 4 RLC
RLC r ? ? P ? 0 0 2 2 8
RLC (HL) ? ? P ? 0 0 2 4 15
RLC (IX+d) ? ? P ? 0 0 4 6 23
RLC (IY+d) ? ? P ? 0 0 4 6 23
RRCA ? 0 0 1 1 4 RRC
RRC r ? ? P ? 0 0 2 2 8
RRC (HL) ? ? P ? 0 0 2 4 15
RRC (IX+d) ? ? P ? 0 0 4 6 23
RRC (IY+d) ? ? P ? 0 0 4 6 23
RLD ? P ? 0 0 2 5 18
RRD ? P ? 0 0 2 5 18

Действие команд сдвига поясняется рисунком:

SLA (сдвиг влево арифметический):

┌──┐     ┌──┬──┬──┬──┬──┬──┬──┬──┐
│  ◄─────┤b7│b6│b5│b4│b3│b2│b1│b0├◄─── 0
└──┘     └──┴──┴──┴──┴──┴──┴──┴──┘
 флаг C          регистр/память

SRA (сдвиг вправо арифметический):

┌──────────────────────────────────────┐
│  ┌──┐     ┌──┬──┬──┬──┬──┬──┬──┬──┐  │
└──►  │   ┌►┤b7│b6│b5│b4│b3│b2│b1│b0├──┘
   └──┘   │ └┬─┴──┴──┴──┴──┴──┴──┴──┘
          └──┘
 флаг C           регистр/память

SRL (сдвиг вправо логический):

┌──────────────────────────────────────┐
│  ┌──┐     ┌──┬──┬──┬──┬──┬──┬──┬──┐  │
└──►  │   ┌─►b7│b6│b5│b4│b3│b2│b1│b0├►─┘
   └──┘   │ └──┴──┴──┴──┴──┴──┴──┴──┘
          0
 флаг C           регистр/память

RLA (сдвиг влево через перенос):

┌──────────────────────────────────────┐
│ ┌──┐     ┌──┬──┬──┬──┬──┬──┬──┬──┐   │
└─┤  ├─◄───┤b7│b6│b5│b4│b3│b2│b1│b0├◄──┘
  └──┘     └──┴──┴──┴──┴──┴──┴──┴──┘
 флаг C          аккумулятор

Команда RL выполняется аналогично над регистром или памятью.

RRA (сдвиг вправо через перенос):

┌─────────────────────────────────────┐
│ ┌──┐     ┌──┬──┬──┬──┬──┬──┬──┬──┐  │
└►┤  ├─►───┤b7│b6│b5│b4│b3│b2│b1│b0├──┘
  └──┘     └──┴──┴──┴──┴──┴──┴──┴──┘
 флаг C          аккумулятор

Команда RR выполняется аналогично над регистром или памятью.

RLCA (циклический сдвиг влево):

       ┌─────────────────────────────┐
┌──┐   │ ┌──┬──┬──┬──┬──┬──┬──┬──┐   │
│  ◄───┴─┤b7│b6│b5│b4│b3│b2│b1│b0├◄──┘
└──┘     └──┴──┴──┴──┴──┴──┴──┴──┘
 флаг C          аккумулятор

Команда RLC выполняется аналогично над регистром или памятью.

RRCA (циклический сдвиг вправо):

┌───────┬──────────────────────────────┐
│ ┌──┐  │  ┌──┬──┬──┬──┬──┬──┬──┬──┐   │
└─►  │  └─►┤b7│b6│b5│b4│b3│b2│b1│b0├───┘
  └──┘     └──┴──┴──┴──┴──┴──┴──┴──┘
   флаг C          аккумулятор

Команда RRC выполняется аналогично над регистром или памятью.

RLD (обмен полубайтов влево):

         ┌───────────────────────┐
┌─────┬──┴──┐           ┌─────┬──▼──┐
│     │     │           │     │     │
└─────┴──▲──┘           └┬─▲──┴──┬──┘
         └───────────────┘ └─────┘
 аккумулятор           память, адресуемая (HL)

RRD (обмен полубайтов вправо):

         ┌─────────────────┐ ┌───┐
┌─────┬──┴──┐           ┌──▼─┴┬──▼──┐
│     │     │           │     │     │
└─────┴──▲──┘           └─────┴──┬──┘
         └───────────────────────┘
 аккумулятор           память, адресуемая (HL)

Группа команд пересылки блока

Мнемокод Символическое описание Флаги Дл ЧЦ ЧТ Intel 8080
C Z V S N H
LDI(DE)⇐ (HL)
DE=DE+1
HL=HL+1
BC=BC-1
?
1
0 0 2 4 16
LDIR(DE)⇐ (HL)
DE=DE+1
HL=HL+1
BC=BC-1
Повторяется пока BC<>0
0 0 0 2 4 16
LDD(DE)⇐ (HL)
DE=DE-1
HL=HL-1
BC=BC-1
?
1
0 0 2 4 16
LDDR(DE)⇐ (HL)
DE=DE-1
HL=HL-1
BC=BC-1
Повторяется пока BC<>0
0 0 0 2 4 16

Группа команд поиска

Мнемокод Символическое описание Флаги Дл ЧЦ ЧТ Intel 8080
C Z V S N H
CPIA = (HL) ?
HL⇐HL+1
BC⇐BC-1;
P/V=0,if BC=0
P/V=1,if <>0
? ? ? 1 ? 2 4 16
CPIRA = (HL) ?
HL⇐HL+1
BC⇐BC-1
Повторяется пока BC<>0
? ? ? 1 ? 2 4 16
CPDA = (HL) ?
HL=HL-1
BC=BC-1
P/V=0,if BC=0
P/V=1,if <>0
? ? ? 1 ? 2 4 16
CPDRA = (HL) ?
HL=HL-1
BC=BC-1
Повторяется пока BC<>0
?
2
?
1
? 1 ? 2 4 16

Команды обращения к подпрограмме

Мнемокод Символическое описание Флаги Дл ЧЦ ЧТ Intel 8080
C Z V S N H
CALL nnSP ⇐ SP-2
(SP) ⇐ PC
PC = nn
3 5 17 CALL NN
CALL cc,nnЕсли условие cc ложно,
продолжить программу,
иначе так же, как и для
CALL nn
3 3 10 CNZ, CZ,
CNC, CC,
CPO, CP,
CPE, CM
3 5 17
RETPC ⇐ (SP)
SP ⇐ SP+2
1 3 10 RET
RET ccЕсли условие cc ложно,
продолжить программу,
иначе так же, как и для
RET
1 1 5 RNZ, RZ,
RNC, RC,
RPO, RP,
RPE, RM
1 3 11
RETIВозврат после прерывания 2 4 14
RETNВозврат после
немаскируемого прерывания
2 4 14
RST pSP ⇐ SP-2
(SP)⇐ PC
PC = p
1 3 11 RST N

В системе команд микропроцессора имеется восемь однобайтовых команд RST 0RST 7 вызова подпрограмм, расположенных по фиксированным адресам. Ниже приведена таблица соответствия между этими командами и шестнадцатеричными адресами ячеек памяти, куда передается управление при их выполнении.

Команда Адрес начала
подпрограммы
RST 0 0000
RST 1 0008
RST 2 0010
RST 3 0018
RST 4 0020
RST 5 0028
RST 6 0030
RST 7 0038

В мнемонике микропроцессора Z80 (в отличие от мнемоники Intel 8080) команда записывается с указанием непосредственного адреса обращения к подпрограмме, например, RST 7 записывается как RST 38h.

Группа команд управления центральным процессором

Команда NOP этой группы не производит никаких операций, однако т.к. она выполняется за определенный отрезок времени, её можно использовать в программах для задания временных интервалов.

Появление в программе команды HALT ведет к останову выполнения программы. Продолжить выполнение программы можно только подачей сигнала СБРОС или ЗАПРОС ПРЕРЫВАНИЯ на соответствующие входы микропроцессора. В режиме ожидания команда схожа с командой NOP.

Команда IM служит для установки вектора прерываний. Команды DI и EI — для запрещения и разрешения маскируемых прерываний.

Команда IM 0 устанавливает режим прерывания, в котором прерывающее устройство может вставить какую–нибудь команду в шину данных или для выполнения ЦП.

Команда IM 1 устанавливает режим прерывания, в котором процессор будет реагировать на прерывание, выполняемое командой RST 38H.

Команда IM 2 устанавливает режим прерывания, в котором разрешается непрямой вызов какой–нибудь ячейки памяти. В этом режиме ЦП формирует 16–битный адрес памяти. Восемь верхних битов содержит регистр I контроля вектора прерывания.

Мнемокод Символическое описание Флаги Дл ЧЦ ЧТ Intel 8080
C Z V S N H
NOPНет операции 1 1 4 NOP
HALTОстанов 1 1 4 HLT
DIIFF=0 1 1 4 DI
EIIFF=1 1 1 4 EI
IM 0Установка режима
прерываний
2 2 8
IM 1 2 2 8
IM 2 2 2 8

Первая страницаПредыдущая страницаНазад к обзоруСледующая страницаПоследняя страница

msx/assembler_programming_guide-fakhrutdinov_bocharov/11.txt · Последние изменения: 2020-11-04 13:24 — GreyWolf