Shamrov_M_I_Telnov_G_G_Organizatsia_ustroystv_na_baze_protsessorov_maloy_razryadnosti
.pdf– 140 –
Микропроцессор К580 может адресовать 64К байт памяти, 256 портов ввода и 256 портов вывода. Порт может занимать одновременно один и тот же адрес, как в адресном пространстве портов ввода, так и в адресном пространстве портов вывода.
Микропроцессор К580 содержит следующие программно доступные регистры:
A – регистр-аккумулятор, неявно адресуется многими командами. Совместно с регистром признаков составляет PSW;
B, C, D, E, H, L – регистры общего назначения. Образуют три 16-разрядные регистровые пары: B-C, D-E, H-L. При использовании регистровых пар в командах языка ассемблера, в качестве операнда указывается имя старшего регистра пары: B, D или H. При этом не возникает неопределенности, что именно адресуется командой – регистр или регистровая пара, поскольку это однозначно определяется мнемокодом команды. Регистровая пара H-L используется для косвенной адресации: символ M в качестве операнда означает «байт в памяти, адрес которого находится в регистровой паре H-L»;
Регистр признаков – регистр, хранящий признаки результатов (флаги), изменяемые командами. Совместно с аккумулятором составляет PSW;
SP – указатель стека. В стек можно записать (из стека извлечь) содержимое регистровой пары или PSW. В стек также записывается адрес возврата при вызове подпрограммы;
PC – программный счетчик. Хранит адрес текущей исполняемой команды.
Иногда в программистской модели указывают также триггер разрешения прерываний (устанавливается командой EI, сбрасывается сигналом RESET и командой DI) и триггер останова.
–141 –
3.Форматы команд
ФОРМАТ 1: однобайтная команда КОП
ФОРМАТ 2: двухбайтная команда с непосредственным операндом
КОП D8
ФОРМАТ 3: двухбайтная команда ввода-вывода КОП PORT
ФОРМАТ 4: трехбайтная команда с непосредственным операндом
КОП D16мл D16ст
ФОРМАТ 5: трехбайтная команда передачи управления КОП А16мл А16ст
–142 –
4.Регистр признаков
S Z 0 AC 0 P 1 CY
S – признак знака; принимает значение старшего разряда результата;
Z – признак нуля; если результат равен нулю, то Z=1, иначе
Z=0;
AC – признак вспомогательного переноса; если есть перенос между тетрадами байта, то AC=1, иначе AC=0;
P – признак четности; если число единиц в байте результата четно, то P=1, иначе P=0;
CY – признак переноса (заема); если есть перенос из старшего разряда или заем в старший разряд, то CY=1, иначе CY=0.
– 143 –
Содержимое |
Активные |
регистра |
признаки (=1) |
признаков |
|
02 |
|
03 |
CY |
06 |
P |
07 |
P, CY |
12 |
AC |
13 |
AC, CY |
16AC, P
17AC, P, CY
46Z, P
47Z, P, CY
56Z, AC, P
57Z, AC, P, CY
82S
83S, CY
86S, P
87S, P, CY
92S, AC
93S, AC, CY
96S, AC, P
97S, AC, P, CY
–144 –
5.Система команд
Команды передачи данных
Мнемокод |
Операция |
МЦ |
МТ |
Ф |
Признаки |
MOV R1,R2 |
(R1)←(R2) |
S |
5 |
1 |
|
XCHG |
(HL)↔(DE) |
F |
4 |
1 |
|
SPHL |
(SP)←(HL) |
S |
5 |
1 |
|
MOV R,M |
(R)←M(HL) |
FR |
7 |
1 |
|
MOV M,R |
M(HL)←(R) |
FW |
7 |
1 |
Все признаки |
LDAX RP' |
(A)←M(RP) |
FR |
7 |
1 |
|
STAX RP' |
M(RP)←(A) |
FW |
7 |
1 |
сохраняют |
LDA A16 |
(A)←M(A16) |
FRRR |
13 |
5 |
свои |
STA A16 |
M(A16)←(A) |
FRRW |
13 |
5 |
значения |
LHLD A16 |
(L)←M(A16) |
FRRRR |
16 |
5 |
|
(H)←M(A16+1) |
|
||||
|
|
|
|
|
|
SHLD A16 |
M(A16)←(L) |
FRRWW |
16 |
5 |
|
M(A16+1)←(H) |
|
||||
|
|
|
|
|
|
MVI R,D8 |
(R)←D8 |
FR |
7 |
2 |
|
LXI RP,D16 |
(RP)←D16 |
FRR |
10 |
4 |
|
MVI M,D8 |
M(HL)←D8 |
FRW |
10 |
2 |
|
|
M(SP–1)←(RPH) |
|
|
|
|
PUSH RP" |
M(SP–2)←(RPL) |
SWW |
11 |
1 |
|
|
(SP)←(SP)–2 |
|
|
|
|
|
(RPL)←M(SP) |
|
|
|
|
POP RP" |
(RPH)←M(SP+1) |
FRR |
10 |
1 |
|
|
(SP)←(SP)+2 |
|
|
|
|
XTHL |
M(SP)↔(L) |
FRRWW |
18 |
1 |
|
M(SP+1)↔(H) |
|
||||
|
|
|
|
|
|
IN PORT |
(A)←I(PORT) |
FRI |
10 |
3 |
|
OUT PORT |
O(PORT)←(A) |
FRO |
10 |
3 |
|
– 145 –
|
Команды арифметических операций |
|||||
Мнемокод |
Операция |
МЦ |
МТ |
Ф |
Признаки |
|
ADD R |
(A)←(A)+(R) |
F |
4 |
1 |
S, Z, AC, P, CY |
|
ADC R |
(A)←(A)+(R)+CY |
F |
4 |
1 |
S, Z, AC, P, CY |
|
SUB R |
(A)←(A)–(R) |
F |
4 |
1 |
S, Z, AC, P, CY |
|
SBB R |
(A)←(A)–(R)–CY |
F |
4 |
1 |
S, Z, AC, P, CY |
|
INR R |
(R)←(R)+1 |
S |
5 |
1 |
S, Z, AC, P |
|
DCR R |
(R)←(R)–1 |
S |
5 |
1 |
S, Z, AC, P |
|
DAD RP |
(HL)←(HL)+(RP) |
FBB |
10 |
1 |
CY |
|
INX RP |
(RP)←(RP)+1 |
S |
5 |
1 |
|
|
DCX RP |
(RP)←(RP)–1 |
S |
5 |
1 |
|
|
ADD M |
(A)←(A)+M(HL) |
FR |
7 |
1 |
S, Z, AC, P, CY |
|
ADC M |
(A)←(A)+M(HL)+CY |
FR |
7 |
1 |
S, Z, AC, P, CY |
|
SUB M |
(A)←(A)–M(HL) |
FR |
7 |
1 |
S, Z, AC, P, CY |
|
SBB M |
(A)←(A)–M(HL)–CY |
FR |
7 |
1 |
S, Z, AC, P, CY |
|
INR M |
M(HL)←M(HL)+1 |
FRW |
10 |
1 |
S, Z, AC, P |
|
DCR M |
M(HL)←M(HL)–1 |
FRW |
10 |
1 |
S, Z, AC, P |
|
ADI D8 |
(A)←(A)+D8 |
FR |
7 |
2 |
S, Z, AC, P, CY |
|
ACI D8 |
(A)←(A)+D8+CY |
FR |
7 |
2 |
S, Z, AC, P, CY |
|
SUI D8 |
(A)←(A)–D8 |
FR |
7 |
2 |
S, Z, AC, P, CY |
|
SBI D8 |
(A)←(A)–D8–CY |
FR |
7 |
2 |
S, Z, AC, P, CY |
|
DAA |
Десятичная |
F |
4 |
1 |
S, Z, AC, P, CY |
|
коррекция (А) |
||||||
|
|
|
|
|
– 146 –
Команды логических операций
Мнемокод |
Операция |
МЦ |
МТ |
Ф |
Признаки |
|||||
ANA R |
(A)←(A)&(R) |
F |
4 |
1 |
S, Z, P, AC*, CY=0 |
|||||
XRA R |
(A)←(A) (R) |
F |
4 |
1 |
S, Z, P, AC=CY=0 |
|||||
ORA R |
|
|
|
F |
4 |
1 |
S, Z, P, AC=CY=0 |
|||
|
(A)←(A) (R) |
|
|
|
||||||
CMP R |
(A)–(R) |
F |
4 |
1 |
S, Z, AC, P, CY |
|||||
RLC |
Сдвиг влево |
F |
4 |
1 |
CY=A[7], AC=0 |
|||||
циклический |
||||||||||
|
|
|
|
|
||||||
RRC |
Сдвиг вправо |
F |
4 |
1 |
CY=A[0], AC=0 |
|||||
циклический |
||||||||||
|
|
|
|
|
||||||
RAL |
Сдвиг влево |
F |
4 |
1 |
|
|||||
циклический через |
CY=A[7], AC=0 |
|||||||||
|
CY, A[0]=CY |
|
|
|
|
|||||
RAR |
Сдвиг вправо |
F |
4 |
1 |
CY=A[0], AC=0 |
|||||
циклический через |
||||||||||
|
CY, A[7]=CY |
|
|
|
|
|||||
CMA |
(A)← |
|
|
|
F |
4 |
1 |
|
||
A |
|
|||||||||
ANA M |
(A)←(A)&M(HL) |
FR |
7 |
1 |
S, Z, P, AC*, CY=0 |
|||||
XRA M |
(A)←(A) M(HL) |
FR |
7 |
1 |
S, Z, P, AC=CY=0 |
|||||
ORA M |
|
FR |
7 |
1 |
S, Z, P, AC=CY=0 |
|||||
|
(A)←(A) (HL) |
|
|
|
||||||
CMP M |
(A)–M(HL) |
FR |
7 |
1 |
S, Z, AC, P, CY |
|||||
ANI D8 |
(A)←(A)&D8 |
FR |
7 |
2 |
S, Z, P, AC*, CY=0 |
|||||
XRI D8 |
(A)←(A) D8 |
FR |
7 |
2 |
S, Z, P, AC=CY=0 |
|||||
ORI D8 |
|
|
|
FR |
7 |
2 |
S, Z, P, AC=CY=0 |
|||
|
(A)←(A) D8 |
|
|
|
||||||
CPI D8 |
(A)–D8 |
FR |
7 |
2 |
S, Z, AC, P, CY |
|||||
CMC |
(CY)← |
|
|
|
|
F |
4 |
1 |
CY |
|
CY |
||||||||||
|
|
|
|
|
|
|||||
STC |
(CY)←1 |
F |
4 |
1 |
CY=1 |
Примечание: АС* – признак АС принимает значение четвертого разряда результата (для команд логического умножения).
– 147 –
Команды передачи управления
Мнемокод |
Операция |
МЦ |
МТ |
Ф |
Признаки |
|
PCHL |
(PCH)←(H) |
S |
5 |
1 |
|
|
(PCL)←(L) |
|
|||||
|
|
|
|
|
||
JMP A16 |
(PC)←A16 |
FRR |
10 |
5 |
|
|
|
Если условие |
|
|
|
|
|
Jcond A16 |
выполняется, то |
FRR |
10 |
5 |
|
|
|
(PC)←A16, иначе |
|
|
|
|
|
|
(PC)←(PC)+3 |
|
|
|
|
|
|
M(SP–1)←(PCH) |
|
|
|
Все признаки |
|
CALL A16 |
M(SP–2)←(PCL) |
SRRWW |
17 |
5 |
||
сохраняют |
||||||
|
(SP)←(SP)–2 |
|
|
|
свои значения |
|
|
(PC)←A16 |
|
|
|
||
|
|
|
|
|
||
|
Если условие |
SRRWW |
17 |
|
|
|
Ccond A16 |
выполняется, то |
|
|
5 |
|
|
|
см. CALL, иначе |
SRR |
11 |
|
|
|
|
(PC)←(PC)+3 |
|
|
|
|
|
|
M(SP–1)←(PCH) |
|
|
|
|
|
RST N |
M(SP–2)←(PCL) |
SWW |
11 |
1 |
|
|
(SP)←(SP)–2 |
|
|||||
|
|
|
|
|
||
|
(PC)←8×N |
|
|
|
|
|
RET |
(PCL)←M(SP) |
FRR |
10 |
1 |
|
|
(PCH)←M(SP+1) |
|
|||||
|
(SP)←(SP)+2 |
|
|
|
|
|
|
Если условие |
SRR |
11 |
|
|
|
Rcond |
выполняется, то |
|
|
1 |
|
|
см. RET, иначе |
|
|
|
|||
|
S |
5 |
|
|
||
|
(PC)←(PC)+1 |
|
|
|||
|
|
|
|
|
– 148 –
Специальные команды
Мнемокод |
Операция |
МЦ |
МТ |
Ф |
Признаки |
EI |
Разрешить преры- |
F |
4 |
1 |
|
вания (ТРПР)←1 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
Все признаки |
DI |
Запретить преры- |
F |
4 |
1 |
|
вания (ТРПР)←0 |
сохраняют |
||||
|
|
|
|
|
свои значения |
HLT |
Останов |
FB |
7 |
1 |
|
NOP |
Отсутствие |
F |
4 |
1 |
|
операции |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
Обозначения:
← – операция пересылки ↔ – операция обмена
&– конъюнкция (И)
– дизъюнкция (ИЛИ)
|
– сложение по модулю 2 (исключающее ИЛИ) |
R |
– один из семи регистров: A,B,C,D,E,H,L |
RP |
– одна из четырех регистровых пар: B,D,H,SP |
RP' |
– одна из двух регистровых пар: B,D |
RP" |
– одна из четырех регистровых пар: B,D,H,PSW |
RPH |
– старший регистр в регистровой паре |
RPL |
– младший регистр в регистровой паре |
PORT |
– 8-разрядный адрес порта ввода/вывода |
N |
– один из восьми уровней прерывания: 0,1,2,3,4,5,6,7 |
D8 |
– 8-разрядный непосредственный операнд |
D16 |
– 16-разрядный непосредственный операнд |
A16 |
– 16-разрядный адрес |
–149 –
(R)– содержимое регистра R
(RP) |
– содержимое регистровой пары RP |
M(A16)– содержимое байта памяти по адресу А16 |
|
M(RP) – содержимое байта памяти по адресу, хранящемуся в |
|
регистровой паре RP |
|
I(PORT) – содержимое порта ввода с адресом PORT |
|
O(PORT) – содержимое порта вывода с адресом PORT |
|
cond |
– одно из восьми условий: |
|
NZ – не нулевой результат (Z=0) |
|
Z – нулевой результат (Z=1) |
|
NC – отсутствие переноса или заема (CY=0) |
|
C – наличие переноса или заема (CY=1) |
|
PO – нечетность числа единиц в результате (P=0) |
|
PE – четность числа единиц в результате (P=1) |
|
P – положительный результат (S=0) |
|
M – отрицательный результат (S=1) |
МЦ |
– типы машинных циклов: |
|
F – выборка первого байта команды (4 такта) |
|
S – выборка первого байта команды (5 тактов) |
|
R – чтение из памяти (3 такта) |
|
W – запись в память (3 такта) |
|
I – ввод из порта (3 такта) |
|
O – вывод в порт (3 такта) |
|
B – отсутствие операций на шине |
МТ |
– количество машинных тактов |
Ф– формат команды (см. разд. 3 настоящего Приложения)
–150 –
6.Коды команд
Команды передачи данных
|
R |
|
A |
B |
|
|
|
C |
|
D |
E |
|
H |
|
L |
|||
|
MOV A,R |
|
7F |
78 |
|
|
79 |
|
7A |
7B |
|
7C |
|
7D |
||||
|
MOV B,R |
47 |
|
40 |
|
|
41 |
42 |
|
43 |
|
44 |
|
45 |
||||
|
MOV C,R |
|
4F |
48 |
|
|
49 |
|
4A |
4B |
|
4C |
|
4D |
||||
|
MOV D,R |
57 |
|
50 |
|
|
51 |
52 |
|
53 |
|
54 |
|
55 |
||||
|
MOV E,R |
|
5F |
58 |
|
|
59 |
|
5A |
5B |
|
5C |
|
5D |
||||
|
MOV H,R |
67 |
|
60 |
|
|
61 |
62 |
|
63 |
|
64 |
|
65 |
||||
|
MOV L,R |
|
6F |
68 |
|
|
69 |
|
6A |
6B |
|
6C |
|
6D |
||||
|
MOV R,M |
|
7E |
46 |
|
|
4E |
56 |
|
5E |
|
66 |
|
6E |
||||
|
MOV M,R |
77 |
|
70 |
|
|
71 |
72 |
|
73 |
|
74 |
|
75 |
||||
|
MVI R,D8 |
|
3E |
06 |
|
|
0E |
16 |
|
1E |
|
26 |
|
2E |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MVI M,D8 |
36 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
XCHG |
EB |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SPHL |
F9 |
|||
|
RP,RP',RP" |
|
B |
|
D |
|
H |
|
SP |
|
PSW |
|
|
|||||
|
LDAX RP' |
|
0A |
|
1A |
|
— |
|
— |
|
— |
|
|
LDA A16 |
3A |
|||
|
STAX RP' |
|
02 |
|
12 |
|
— |
|
— |
|
— |
|
|
STA A16 |
32 |
|||
|
LXI RP,D16 |
|
01 |
|
11 |
|
21 |
|
31 |
|
— |
|
|
LHLD A16 |
2A |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SHLD A16 |
22 |
|||
|
PUSH RP" |
|
C5 |
|
D5 |
|
E5 |
|
— |
|
F5 |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
XTHL |
E3 |
|||
|
POP RP" |
|
C1 |
|
D1 |
|
E1 |
|
— |
|
F1 |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IN PORT |
DB |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OUT PORT |
D3 |
– 151 –
Команды арифметических операций
|
* |
A |
B |
C |
|
D |
E |
H |
L |
M |
|
|||
|
ADD * |
87 |
|
80 |
|
81 |
|
82 |
83 |
84 |
85 |
86 |
|
|
|
ADC * |
8F |
88 |
|
89 |
|
8A |
8B |
8C |
8D |
8E |
|
||
|
SUB * |
97 |
|
90 |
|
91 |
|
92 |
93 |
94 |
95 |
96 |
|
|
|
CBB * |
9F |
98 |
|
99 |
|
9A |
9B |
9C |
9D |
9E |
|
||
|
INR * |
3C |
04 |
|
0C |
|
14 |
1C |
24 |
2C |
34 |
|
||
|
DCR * |
3D |
05 |
|
0D |
|
15 |
1D |
25 |
2D |
35 |
|
||
|
|
|
|
|
|
|
|
|
ADI D8 |
C6 |
||||
|
RP |
B |
|
D |
|
H |
SP |
|
|
|||||
|
INX RP |
03 |
|
13 |
|
23 |
33 |
|
|
ACI D8 |
CE |
|||
|
DCX RP |
0B |
|
1B |
|
2B |
3B |
|
|
SUI D8 |
D6 |
|||
|
DAD RP |
09 |
|
19 |
|
29 |
39 |
|
|
SBI D8 |
DE |
|||
|
|
|
|
|
|
|
|
|
|
|
DAA |
27 |
||
|
|
Команды логических операций |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
* |
A |
B |
C |
|
D |
E |
H |
L |
M |
|
|||
|
ANA * |
A7 |
A0 |
A1 |
|
A2 |
A3 |
A4 |
A5 |
A6 |
|
|||
|
XRA * |
AF |
A8 |
A9 |
|
AA |
AB |
AC |
AD |
AE |
|
|||
|
ORA * |
B7 |
B0 |
B1 |
|
B2 |
B3 |
B4 |
B5 |
B6 |
|
|||
|
CMP * |
BF |
B8 |
B9 |
|
BA |
BB |
BC |
BD |
BE |
|
RLC |
07 |
ANI D8 |
E6 |
CMA |
2F |
RRC |
0F |
XRI D8 |
EE |
CMC |
3F |
RAL |
17 |
ORI D8 |
F6 |
CTC |
37 |
RAR |
1F |
CPI D8 |
FE |
|
|
– 152 –
Команды передачи управления
cond |
|
|
NZ |
|
|
|
Z |
|
NC |
|
|
C |
|
PO |
PE |
|
P |
M |
|||
Jcond A16 |
C2 |
|
|
CA |
|
D2 |
|
DA |
|
E2 |
EA |
|
F2 |
FA |
|||||||
Ccond A16 |
C4 |
|
|
CC |
|
D4 |
|
DC |
|
E4 |
EC |
|
F4 |
FC |
|||||||
Rcond |
C0 |
|
|
C8 |
|
D0 |
|
D8 |
|
E0 |
E8 |
|
F0 |
F8 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PCHL |
|
E9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RET |
|
|
|||
N |
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
5 |
|
6 |
|
7 |
|
C9 |
||||
RST N |
|
C7 |
|
CF |
|
D7 |
|
DF |
|
E7 |
EF |
|
F7 |
FF |
JMP A16 |
C3 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CALL A16 |
CD |
Специальные команды
EI |
FB |
HLT |
76 |
DI |
F3 |
NOP |
00 |
– 153 –
ПРИЛОЖЕНИЕ Б СИСТЕМНЫЕ ВЫЗОВЫ МОНИТОРА УМК
С целью уменьшения общего объема программ в мониторе используется ряд стандартных подпрограмм. Все подпрограммы могут быть вызваны из программ пользователя с помощью команд CALL по указанным адресам. Ниже приводятся их имена, начальные адреса и краткие пояснения работы. Имена взяты из текстов программ монитора на языке ассемблера и приведены исключительно для улучшения читаемости описания. Каждая из подпрограмм может изменять содержимое любых регистров микропроцессора. Таким образом, задача сохранения содержимого регистров (если это необходимо) лежит на вызывающей программе.
CIADR (021FH)
Данная подпрограмма осуществляет прием с клавиатуры (в шестнадцатеричной системе счисления) N параметров типа ADDRESS (2 байта) и помещает их в стек. Число параметров N указывается в регистре С.
COMPA (022FH)
Данная подпрограмма производит сравнение содержимого регистровых пар HL и DE. Если (HL)≥(DE), то происходит установка признака CY в «1». Содержимое регистровых пар трактуется как целые числа без знака.
COMPA1 (0234H)
Данная подпрограмма производит сравнение содержимого регистровых пар HL и DE. Если (HL)>(DE), то происходит
– 154 –
установка признака CY в «1». Содержимое регистровых пар трактуется как целые числа без знака.
PARAM (0239H)
Данная подпрограмма осуществляет прием с клавиатуры (в шестнадцатеричной системе счисления) одного параметра типа BYTE (1 байт) или ADDRESS (2 байта) и помещает его в регистровую пару HL. Набор параметра оканчивается символом «└─┘» или «ВП». Перед исполнением в регистре С указывается тип принимаемого параметра: 00H – BYTE, 01H – ADDRESS.
PCHK (026AH)
Данная подпрограмма осуществляет прием и проверку введенного с клавиатуры кода на совпадение с кодами символов «└─┘» или «ВП», для чего вызывается подпрограмма CI и, если был введен символ «└─┘», то происходит установка признака Z в «1», если «ВП» – в «1» устанавливаются признаки Z и CY.
ERROR (0276H)
Данная подпрограмма используется для сигнализации пользователю об ошибке (например, неверный ввод параметра). Осуществляет гашение всех разрядов дисплея, выдачу в крайнем правом разряде символа «?» и выход в основную программу монитора с выдачей приглашения (символа «–»).
CONVBIN (0282H)
Данная подпрограмма осуществляет преобразование одной шестнадцатеричной цифры (4 бита) в символьный код (ASCII). Цифра берется из младшей тетрады аккумулятора.
– 155 –
COBYTE (028BH)
Данная подпрограмма осуществляет вывод на дисплей (в буфер вывода) байта, находящегося в регистре С, в шестнадцатеричной форме. Вывод производится в две младшие позиции со сдвигом остальных на две позиции влево.
COADR (02A3H)
Данная подпрограмма осуществляет вывод на дисплей (в буфер вывода) адреса, находящегося в регистровой паре ВС, в шестнадцатеричной форме.
CONC (02B0H)
Данная подпрограмма осуществляет вывод символа на дисплей (в буфер вывода). В регистре С должен быть задан семисегментный код символа, а в регистре В – номер индикатора, на котором должен быть отображен символ. (Нумерация индикаторов от 0 до 5, индикатор 0 – крайний правый, 5 – крайний левый.)
ERSBT (02B9H)
Данная подпрограмма осуществляет гашение индикации данных (два правых разряда дисплея) в буфере вывода.
ERSADR (02C3H)
Данная подпрограмма осуществляет гашение адресной индикации (четыре левых разряда дисплея) в буфере вывода.
ERSIND (02C0H)
Данная подпрограмма осуществляет гашение всех шести разрядов дисплея в буфере вывода.
– 156 –
CI (02CDH)
Данная подпрограмма осуществляет регенерацию изображения на дисплее (из буфера вывода), сканирование и прием символов с клавиатуры с преобразованием их в код ASCII. Возврат из процедуры – при нажатии любой клавиши. ASCII-код символа заносится в аккумулятор. (ASCII-коды директивных клавиш – 00Н– 07Н, информационных (цифровых) клавиш – 30Н–39Н, 41Н–46Н.)
CO (0332H)
Данная подпрограмма осуществляет преобразование кода ASCII символа в его семисегментный код, запись полученного кода в буфер вывода и сдвиг текущего состояния индикаторов на один шаг влево посредством модификации буфера вывода.
Перед исполнением подпрограммы в регистре С должен быть помещен код ASCII символа, а в регистре В указан тип данных: 00H – BYTE (выдается на индикаторы 1–0), 01H – ADDRESS (выдается на индикаторы 5–2).
DELAY (035BH)
Данная подпрограмма осуществляет задержку порядка 10 мс и используется для подавления дребезга клавиш при сканировании клавиатуры.
– 157 – |
|
СОДЕРЖАНИЕ |
|
ВВЕДЕНИЕ............................................................................................. |
3 |
1. ОБЩИЕ СВЕДЕНИЯ......................................................................... |
4 |
2. УСТРОЙСТВО И ПРИНЦИПЫ РАБОТЫ УМК........................... |
10 |
2.1. Процессор УМК......................................................................... |
10 |
2.2. Память УМК............................................................................... |
14 |
2.3. Организация прерываний в процессоре УМК........................ |
17 |
3. ПРОГРАММА-МОНИТОР УМК.................................................... |
20 |
3.1. Общие сведения о мониторе УМК........................................... |
20 |
3.2. Директивы монитора для ввода и редактирования программ и |
|
данных ............................................................................................... |
22 |
3.2.1. Просмотр и изменение содержимого памяти................... |
22 |
3.2.2. Просмотр и изменение содержимого регистров |
|
микропроцессора.......................................................................... |
23 |
3.2.3. Определение контрольной суммы области памяти......... |
24 |
3.2.4. Заполнение области памяти константой .......................... |
24 |
3.2.5. Перемещение программ и данных в памяти.................... |
25 |
3.3. Директивы монитора для исполнения и отладки программ.. |
25 |
3.3.1. Передача управления программе пользователя............... |
25 |
4. РАБОТА ПОЛЬЗОВАТЕЛЯ С УМК .............................................. |
30 |
5. ИЗУЧЕНИЕ ЯДРА УМК.................................................................. |
33 |
5.1. Изучение приемов работы на УМК......................................... |
33 |
5.2. Программирование вычислительных алгоритмов.................. |
35 |
5.3. Организация машинного цикла однокристального |
|
микропроцессора.............................................................................. |
39 |
5.4. Организация различных режимов работы и прерываний в |
|
УМК................................................................................................... |
53 |
– 158 – |
|
|
– 159 – |
|
6. ОРГАНИЗАЦИЯ ПАРАЛЛЕЛЬНОГО ВВОДА-ВЫВОДА.......... |
57 |
Приложение А. CПРАВОЧНЫЕ ДАННЫЕ ПО |
|
|
6.1. БИС программируемого параллельного интерфейса |
|
МИКРОПРОЦЕССОРУ К580ВМ80.................................................. |
138 |
|
К580ВВ55А....................................................................................... |
57 |
1. |
Назначение выводов микросхемы............................................. |
138 |
6.2. Организация процедур ввода-вывода с использованием ППИ |
2. |
Программистская модель........................................................... |
139 |
|
............................................................................................................ |
72 |
3. |
Форматы команд......................................................................... |
141 |
6.3. Описание платы М2................................................................... |
74 |
4. |
Регистр признаков...................................................................... |
142 |
6.4. Описание платы ПС................................................................... |
78 |
5. |
Система команд .......................................................................... |
144 |
6.5. Изучение работы ППИ в режимах 0 и 1 с использованием |
|
6. |
Коды команд ............................................................................... |
150 |
платы М2 ........................................................................................... |
83 |
Приложение Б. СИСТЕМНЫЕ ВЫЗОВЫ МОНИТОРА УМК...... |
153 |
|
6.6. Использование ППИ для связи с клавиатурой и матрицей |
|
|
|
|
светодиодов на плате ПС................................................................. |
87 |
|
|
|
7. ОРГАНИЗАЦИЯ ТАЙМЕРА........................................................... |
91 |
|
|
|
7.1.БИС программируемого интервального таймера К580ВИ53 91
7.2.Организация процедур счета времени с использованием
таймера .............................................................................................. |
98 |
7.3. Описание платы ППИ................................................................ |
99 |
7.4. Изучение работы таймера с использованием платы ППИ... |
106 |
8. ОРГАНИЗАЦИЯ ВВОДА-ВЫВОДА АНАЛОГОВЫХ |
|
СИГНАЛОВ........................................................................................ |
109 |
8.1. Цифро-аналоговый преобразователь К572ПА1А................. |
109 |
8.2. Аналого-цифровой преобразователь К1113ПВ1А............... |
115 |
8.3. Описание платы АЦА.............................................................. |
118 |
8.4.Изучение цифро-аналогового преобразователя К572ПА1А124
8.5.Изучение аналого-цифрового преобразователя К1113ПВ1А
.......................................................................................................... |
129 |
8.6. Совместное использование ЦАП и АЦП .............................. |
135 |
ЛИТЕРАТУРА.................................................................................... |
136 |