Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ZX Spectrum для пользователей и программистов.doc
Скачиваний:
56
Добавлен:
28.09.2019
Размер:
1.92 Mб
Скачать

Пояснения к таблице символов

В первом и втором столбцах таблицы приведены соответственно десятичный (Д) и шестнадцатиричный (Ш) коды. Относящиеся к ним символы ZX Spectrum (токены) расположены в третьем столбце. В четвертом, пятом и шестом столбцах таблицы даны мнемоники команд микропроцессора Z80 (см. «Система команд Z80»).

При описании команд приняты следующие обозначения:

n - один байт данных, непосредственно следующий за кодом команды, является всегда последним байтом команды;

nn — 16-разрядный операнд, представляющий собой два байта данных, непосредственно следующих за кодом команды. Первым располагается младший байт, затем — старший;

(nn) - 16-разрядный адрес, указанный непосредственно за кодом команды (сначала следует младший байт, затем старший);

е — 8-разрядное смещение относительно адреса, находящегося в счетчике команд PC. Располагается непосредственно за кодом команды.

Коротко о правилах построения кодов команд. Как уже говорилось раньше, 8-разрядная шина данных позволяет непосредственно реализовать не более 256 команд. Однако, для построения таких однобайтовых* команд (их мнемоники приведены в четвертом столбце таблицы) используются лишь 252 кода.

Два байта #СВ и #ED префиксируют команды, мнемоники которых приведены в пятом и шестом столбцах таблицы соответственно. Так команда LD D,(HL) имеет код #56, команда BIT 2,(HL) — код #СВ #56, а команда IM 1 — код #ED #56.

Оставшиеся два байта #DD и #FD префиксируют команды, работающие соответственно с индексными регистрами IX и IY.

Коды команд, использующих в качестве операндов индексные регистры IX и IY, получаются добавлением префиксного байта к кодам команд, оперирующих с регистровой парой HL (но не префиксированных байтом #ED).

Коды команд, использующих индексный метод адресации, образуются аналогично, только префиксируются команды, оперирующие с ячейкой памяти, адресуемой (HL). При этом код смещения d (см. «Система команд Z80») всегда является третьим байтом получающегося кода.

Коды недокументированных команд, работающих с частями индексных регистров, образуются из префикса #DD или #FD и кода команды, оперирующей с регистрами Н и L. Причем регистру Н соответствуют старшие байты индексных регистров (IXh и IYh), а регистру L — младшие (IXl и IYl).

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

*) Имеется в виду только код операции — без учета байтов возможных данных.

Таблица 8. Пример построения кодов команд Z80.

Исходная команда

Получаемая команда

Мнемоника

Код

Мнемоника

Код

ADD HL,BC

#09

ADD IX,BC

#DD #09

JP (HL)

#E9

JP (IY)

#FD #E9

LD B,(HL)

#46

LD B,(IX+1)

#DD #46 #01

BIT 0,(HL)

#CB #46

BIT 0,(IY-1)

#FD #CB #FF #46

LD A,H

#7C

LD A,IXh

#DD #7C

LD H,L

#65

LD IXh,IXl

#DD #65

LD L,1

#2E #01

LD IYl,1

#FD #2E #01

XOR H

#AC

XOR IXh

#DD #AC