АССЕМБЛЕР
Описание центрального процессора
В ЭВМ- "СИНКЛЕР" выбран ЦП типа Z80A. представляющий собой более быстро-
действующий вариант популярного типа Z80. 4 Чипа. Z80, 6502, 6809 и 80.88, стали
широко распространенными в качестве ЦП для микро-эвм. Z80 - самый популярный из
них.
У |
|
Нё |
Ml |
< — 27— |
|
— 30— > |
AO |
|
|
П |
с |
! , |
|
|
|
|
|
|
|
p |
и |
Не |
MREQ |
<--19— |
Микропроцессор |
— 31—> |
AI |
|
|
A |
с |
|
|
|
|
|
|
A |
|
В |
т |
Не |
IORQ |
<--20— |
Z80 |
|
|
Д |
|
Л |
Е |
|
|
|
|
|
|
P |
ill |
E |
М |
Не |
RD |
<--21 — |
|
— 40— > |
A10 |
E |
И |
H |
0 |
|
|
|
|
|
|
С |
H |
И |
Й |
Не |
WR |
<--22— |
|
— 1 — -> |
A1 1 |
H |
A |
E |
|
|
|
|
|
|
|
A |
|
|
|
Не |
RFSH |
<--28— |
|
— 2—-> |
AI 2 |
Я |
|
У |
|
Не |
HALT |
<—18 — |
|
|
|
|
|
П |
|
|
|
|
|
|
|
|
|
p |
|
Не |
WAIT |
— 24-> |
* |
— 5 —> |
A 1 5 |
|
|
A |
Ц |
|
|
|
|
|
|
|
|
В |
|
Не |
INT |
----16-> |
|
—14—> |
DO |
|
|
Л |
П |
|
|
|
|
|
|
|
|
Е |
|
Не |
MNI ---17-> |
|
—15--> |
D1 |
Д |
И |
|
Не |
RESET---26-> |
|
—12 —> |
D2 |
А |
Е |
|
|
|
|
|
|
|
|
|
Не |
BUSRQ---25-> |
|
— g---> |
D3 |
Н |
III |
|
|
|
|
|
|
|
И |
Ц |
Не |
BUSAK<--23-> |
|
—7---> |
D4 |
Н |
Н |
П |
|
|
|
|
|
|
А |
|
|
FTAKT---6 — > |
|
—9---> |
D5 |
Ы |
|
|
|
+5V —11-> |
|
— Ю — > |
D6 |
Е |
|
|
Корпус ---29-> |
|
—13—> |
D7 |
|
Рис.Назначение выводов микропроцессора Z80.Z80A *
Описание сигналов микропроцессора Z80,Z80A
АО - А15 - (адресная шина). Выходы с тремя устойчивыми состояниями. Активный
уровень сигналов-высокий. Адресует ОЗУ или УВВ. (До 64к для ОЗУ)
DO - D7 - (шина данных). Входы-выходы с тремя устойчивыми состояниями. Ак-
тивный уровень-высокий.
Не М - (машинный цикл). Выход. Активный сигнал-низкий. Указывает, что в те-
кущем цикле осуществляется выборка КОП.
Не MREQ - (запрос памяти). Выход с тремя устойчивыми состояниями. Активный
сигнал-низкий. Сигнал указывает, что на адресной шине установлен адрес для опе-
рации чтения или записи в память.
Не IORG - (запрос ввода-вывода). Выход с тремя устойчивыми состояниями. Ак-
тивный уровень сигнала-низкий. Сигнал указывает, что младший байт шины адреса
содержит адрес УВВ. Кроме того, этот сигнал генерируется после выдачи подтвер-
ждения прерывания, тем самым указывая, что вектор прерывания может быть помещен
на шину данных.
Не RD - (чтение из памяти). Выход с тремя устойчивыми состояниями. Активный
уровень сигнала-низкий. Сигнал указывает, что ЦП готов к чтению данных из памя-
ти или из УВВ. Адресованное УВВ или память используют этот сигнал для стробиро-
вания при подаче данных на шины данных ЦП.
Не WR - (зацнсь в память). Выход с тремя устойчивыми состояниями. Активный
уровень сигнала-низкий. Сигнал указывает, что на шине данных содержатся данные,
предназначенные для записи в память или вывода на УВВ.
Не FRSH - (восстановление). Выход.активный уровень-иизкий. Сигнал указывает,
что младшие 7 разрядов шины адреса содержат адрес восстановления для ОЗУ и те-
кущий сигнал не MREQ должен использоваться для восстановления динамической па-
мяти.
Не HALT - (ост). Выход. Активный уровень-низкий. Сигнал указывает.что ЦП вы-
полнил команду HALT н ожидает появления либо маскируемого, либо немаскируемого
прерывания, после которого он продолжит работу. Перед выполнением HALT ЦП зано-
сит в ОЗУ информацию, которая нужна для восстановления.
Не WAIT - (ожидание). Вход. Активный уровень-иизкий. Сигнал указывает микро-
процессору. что адресуемые память или устройство не готовы к передаче данных.
ЦП ждет, пока активен этот сигнал.
Не I NT - (запрос на маскируемое прерывание). Вход. Активный уровень-низкий.
Запрос будет воспринят ЦП в конце выполнения текущей команды, если триггер раз-
решения прерывания IFF. управляемый внутренними программными средствами, уста-
новлен в определенное состояние.
Не NMI - (запрос на немаскируемое прерывание). Вход. Активный уровень-низкий.
Это прерывание имеет более высокий приоритет, чем INT. Распознается в конце те-
кущей команды. Сигнал автоматически переводит ЦП к выполнению программы с адре-
са 0066(HEX).
Не RESET - (сброс). Вход. Активный уровень-низкий. При поступлении сигнала
выполняются следующие действия:
А) сброс триггера разрешения прерывания IFF.
Б) очистка счетчика команд и регистров I и R.
В) шины адресная и данных в состоянии выс.сопротивления.
Г) для всех управляющих выходных сигналов устанавливается неактивный уровень.
Не BUSRQ - (запрос шин). Вход. Активный уровень-низкий Сигнал имеет более
высокий приоритет, чем NMI и всегда распознается в конце текущего машинного
цикла. Он используется для организации прямого доступа к памяти (Г1ДП) и перево-
дит в состояние высокого сопротивления все шины и тристабильные^ выходы сигналов
управления, после чего этими шинами могут управлять другие устройства.
Не BUSAK - (подтверждение перевода шин в сост. высокого сопрогив. ) Выход. Ак-
тивный уровень-низкий. Сигнал подается на запрашивающее внешнее устройство.
INPUT VALUE IN A OFF - входное значение в А для; CAP - прописные буквы; SHIFT
- смена регистра; SYM - сокращение расшифровать ие удалось; ENTER - ввод; BREAK
- прерывание; SPACE- пробел.
Примечание: чтобы выполнить прерывание по клавише:
1) загрузите в регистр А входное значение из соответствующего ряда.
LD А 07Е : нижний ряд
2) примите информацию с входного порта 0FEH.
IN A (OFEH)
3) проверьте, что для нужной клавиши DX имеет низкое значение.
AND 1 : прерывание по клавише BREAK/SPACE
4) если ноль, то клавиша нажата.
JR Z .клавиша нажата : в нормальном состоянии значение всегда высокое
MEMORI ATTRIBUTE
IN HEX IN HEX LINE
MEMORI ATTRIBUTE
IN HEX IN HEX
4000 |
5800 |
0 |
|
40 IF |
58 IF |
4020 |
5820 |
1 |
|
403F |
583F |
4040 |
5840 |
2 |
|
405F |
58 5 F |
4060 |
5860 |
3 |
|
407F |
587F |
4080 |
5880 |
4 |
|
409F |
589F |
40a0 |
58A0 |
5 |
|
40BF |
58BF |
40c0 |
58C0 |
6 |
|
40DF |
58DF |
40e0 |
58E0 |
7 |
|
40FF |
58FF |
4800 |
5900 |
8 |
|
48 IF |
59 1 F |
4820 |
5920 |
9 |
|
483F |
593F |
4840 |
5940 |
10 |
|
485F |
595F |
4860 |
5960 |
1 1 |
|
487F |
597F |
4880 |
5980 |
12 |
|
489F |
599F |
48А0 |
59А0 |
13 |
|
48BF |
59BF |
48С0 |
59С0 |
14 |
|
48DF |
59DF |
48Е0 |
59Е0 |
15 |
|
48FF |
59FF |
5000 |
5А00 |
16 |
|
50 1 F |
5AIF |
5020 |
5А20 |
17 |
|
503F |
5A3F |
5040 |
5А40 |
18 |
|
505F |
5A5F |
5060 |
5А60 |
19 |
|
507F |
5A7F |
5080 |
5А80 |
20 |
|
509F |
5A9F |
50А0 |
5АА0 |
21 |
|
50BF |
5ABF |
50С0 |
5АС0 |
22 |
|
50DF |
5ADF |
50Е0 |
5АЕ0 |
23 |
|
50FF ' |
5AFF |
MEMORY IN HEX - память в шестнадцатеричном формате';
ATTRIBUTE IN HEX - атрибут в шестнадцатеричном формате;
LINE - строка.
Таблица набора литер "SPECTRUM"
HEX |
НОВ |
0 |
1 |
2 |
3 |
4 |
•5Л |
1 в |
LOB |
BITS |
ООО |
OQl |
010 |
01 1 |
100 |
101 |
1 10 |
0 |
0000 |
NU |
INK CTRL |
SPACE |
0 |
|
P |
|
1 |
0001 |
NU |
RAPER CTRJ |
j |
1 |
A |
Q |
|
2 |
0010 |
|
FLASH CTRI |
** |
2 |
В |
R ' |
|
3 |
001 1 |
;NU |
BRIGHT CTRI |
# |
3 |
С |
S |
|
4 |
0100 |
' •'NU ' |
INVERSE CTRI |
S |
4 |
D |
T |
|
5 |
0101 |
NU |
OVER CTRI |
% |
5 |
E |
и |
|
6 |
01 10 |
• PRINT |
AT CTRI |
t |
6 |
F |
V |
|
7 |
011 1 |
: EDIT |
TAB CTRI |
" |
7 |
G |
w |
|
8 |
1000 |
CURSOR LEFT |
NU |
( |
8 |
H |
X . |
|
9 |
1001 |
CURSOR RIGH |
NU |
) |
9 |
1 |
Y |
|
А |
1010 |
CURSOR DOWN |
NU |
|
|
J |
Z : |
|
В |
1011 |
CRSOR UP |
NU |
+ |
|
К |
|
|
С |
1 100 |
DELETE |
NU |
|
< |
L |
|
|
D |
1 101 |
ENTER |
NU |
- |
* |
M |
|
|
Е |
1 110 |
NUMBER |
NU |
|
> |
N |
|
|
F |
1111 |
NU |
NU |
/ |
|
P |
- |
|
|
|
<---NON PR I f |
«TABLE------> |
<----- |
—PI |
11 NT/ |
iBLE- |
|
7
1 1 1
7
1 1 1
NB: М - NOT USED. .
NEX - шестнадцатеричное представление; LOB - младший байт; НОВ - старший
байт; INK CTRI - управление чернилами; SPACE пробел; PAPER CTRI -управление бу-
магой; FLASH CTRI - управление режимом мигания; BRIGHT CTRI - управление яр-
костью; INVERSE CTRI - управление инверсией яркости; OVER CTRI- управление пре-
вышением; PRINT - печать; AT CTRI - управление; EDIT - редактирование; TAB CTRI
- управление табуляцией; CURSOR LEFT - курсор влево; CURSOR RIGHT - курсор
вправо; CURSOR DOWN - курсор вниз; CURSOR UP - курсор вверх; DELETE - удаление;
ENTER - ввод; NUMBER - число; NON PRINTABLE - непечатные; PRINTABLE - печа-
таемые; NB: - замечание; NU - не используется.
Таблицы преобразования десятичных чисел в шестнадцатиричные
NEX |
0 1 |
2 |
3 |
4 5 |
6 |
7 |
8 |
9 |
A |
В |
С |
D |
E |
F |
OOXX |
XXOO |
0 |
0 1 |
2 |
3 |
4 5 |
6 |
7 |
8 |
9 |
10 |
1 1 |
12 |
13 |
1 4 |
15 |
0 |
0 |
1 |
16 17 |
18 |
19 |
19 20 |
21 |
22 |
23 |
24 |
25 |
27 |
28 |
29 |
30 |
31 |
256 |
4096 |
2 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
512 |
8192 |
3 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
768 |
12288 |
4 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
1024 |
16384 |
5 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
1280 |
20480 |
6 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
1061 |
07 |
108 |
109 |
1 1 0 |
1 1 1 |
1 536 |
24576 |
7 |
112 |
113 |
1 I 4 |
115 |
1 16 |
I 17 |
1 18 |
119 |
120 |
121 |
1221 |
23 |
124 |
125 |
126 |
127 |
1792 |
28672 |
8 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
1381 |
39 |
1 40 |
141 |
1 42 |
1 43 |
20 48 |
32768 |
9 |
144 |
145 |
1*6 |
147 |
148 |
I 49 |
150 |
151 |
152 |
153 |
1541 |
55 |
1 56 |
157 |
158 |
1 59 |
2304 |
36864 |
А |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
1701 |
71 |
172 |
173 |
174 |
175 |
2560 |
40960 |
В |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
1861 |
87 |
188 |
189 |
190 |
191 |
2816 |
45056 |
С |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
2022 |
03 |
204 |
205 |
206 |
207 |
3072 |
49152 |
D |
208 |
209 |
210 |
21 1 |
212 |
213 |
214 |
215 |
216 |
217 |
2182 |
19 |
220 |
221 |
222 |
223 |
3328 |
53248 |
Е |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
2342 |
35 |
236 |
237 |
238 |
239 |
3564 |
57344 |
F |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249, |
2502 |
51 |
252 |
253 |
254 |
255 |
3840 |
614 40| |
NEX - шестнадцатеричное |
|
|
|
|
|
Г, * |
|
7 |
|
|
|
|
|
Мы можем показать применение этой таблицы^на примере. Давайте найдем шестнад-
цатеричный эквивалент десятичного числа -6200; Нам нужно определить 16-битовое
двоичное число, т.е.,
0001ВВВВ ВВВВВВВВ
НОВ LOB
НОВ - старший байт; LOB - младший байт
1) из самой левой колонки таблицы под заголовком XX00 мы находим, что 6200
находится между 4096 н 8192. Так что мы' выбираем меньшее значение 4096 и из
значения ряда мы берем 4'самых старших бита старшего байта'равные-1, т.е. 01.
ВВВВВВВВ ВВВВВВВВ
НОВ L0B-
2) второй шаг состоит в том. что мы определяем следующие по старшинству 4 би-
та старшего байта. ' Мы" нбходим разность между 6200 и 4096. равную 2104. Пос-
кольку разность все еще'превышает 255'.' мы обращаемся ко второй слева колонке
таблицы под заголовков ОбХХ и выяснйем. что 2 104 находится между 2048 и 2304.
Вновь мы выбираем меяышее значение 2048-и по знамению ряда'получаем. что сле-
дующее по старшинству 4 бита сгаршёг байта "равны 8. т.е. 1000.
00011000 'ВВВВВВВВ
НОВ L0B
3) Третий шаг состоит в определении младшего байта числа. Мы обнаруживаем,
что разность между 2104 и 2048 равна 56 лежит rta пересечении ряда 3 и колонки
8. Так что мы принимаем младший байт равным 38Н. •
0001100 00111000
НОВ LOB
Итак, шестиадцатернчное значение числа 6200 равно 1838Н.
Шестнадцатеричная Таблица сложения
Шестнадцатеричная Таблица сложения
+ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
А |
В |
С |
D |
Е |
F |
0 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9' |
А'» |
В |
С |
D |
Е |
F |
1 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
А |
В i |
- С |
D' |
Е |
F |
10 |
2 |
2 |
3 |
•4 |
• <5 * |
'6 |
7 |
8 |
9 |
А |
В |
С |
D |
Е |
F |
10 |
1 1 |
3 |
3 |
4 |
5 |
г-в г |
|
8 |
9 |
А |
В |
С |
D |
Е |
F |
1 0 |
1 1 |
12 |
4 |
4 |
5 |
6 |
7* |
-'8 |
9 |
А |
В |
С |
D |
Е |
F |
10 |
1 1 |
12 |
13 |
5 |
5 |
6 |
7 |
8- |
9 |
А |
В |
С |
D |
Е |
F |
10 |
1 1 |
12 |
1 3 |
1 4 |
6 |
6 |
7 |
8 |
9 |
А |
В |
С |
D |
Е |
F |
10 |
1 1 |
12 |
1 3 |
1 4 |
15 |
7 |
7 |
8 |
9 |
А |
В |
С |
D |
Е |
F |
10 |
1 1 |
12 |
1 3 |
1 4 |
1 5 |
16 |
8 |
8 |
9 |
А |
В |
С |
D |
Е |
F |
10 |
1 1 |
12 |
13 |
1 4 |
1 5 |
16 |
17 |
9 |
9 |
А |
В |
С |
D |
Е |
F |
10 |
1 1 |
12 |
1 3 |
! 4 |
15 |
16 |
17 |
18 |
А |
А |
В |
С |
D |
Е |
F |
10 |
1 1 |
12 |
13 |
1 4 |
15 |
16 |
17 |
18 |
1 9 |
В |
В |
С |
D |
Е |
F |
10 |
1 1 |
12 |
13 |
1 4 |
1 5 |
16 |
17 |
18 |
19 |
1А |
С |
С |
D |
Е |
F |
10 |
1 1 |
12 |
13 |
1 4 |
15 |
16 |
17 |
18 |
19 |
1А |
1В |
D |
0 |
Е |
F |
10 |
1 1 |
12 |
13 |
1 4 |
15 |
16 |
17 |
18 |
19 |
1А |
1В |
1С |
Е |
Е |
F |
10 |
I 1 |
12 |
13 |
1 4 |
15 |
16 |
17 |
18 |
19 |
1А |
IB |
1С |
ID |
F |
F |
10 |
1 1 |
12 |
13 |
1 4 |
15 |
16 |
17 |
18 |
19 |
1 А |
1В |
1С |
ID |
IE |