Микропроцессор Z-80. Структура. Система команд. 1969 г.

Раздел 12 - недокументированные команды.


Недокументированные команды

значению регистра В. После передачи очередного байта содержимое
регистра В уменьшается на единицу, регистра HL увеличивается на
единицу.

OUTD (В - А,A7...A0J - (HL) <? | P/V $ N Н

Вывод байта из ячейки памяти в порт с декрементом» Байт считывается
из ячеики памяти, адресуемой регистром HL, и пересылается в порт,
адресуемый регистром ВС. После выполнения команды содержимое
регистров HL и В уменьшается на единицу. Если
в результате выполне-
ния команды В обнуляется, то устанавливается флаг Z,
в противном
случае Z*0.

OTDR (HL, - {Вr A^Ag^ А7...А0) ? ?'С $ 1 2

Вывод массива иэ памяти в порты, с декрементом* Адреса портов задаются
регистром ВС, начальный адрес массива — регистром HL Вывод осуще-
ствляется
в сторону уменьшения адресов, количество передаваемых байт
равно значению регистра В. После передачи очередного байта содержи-
мое регистров
В и HL уменьшается на единицу.

Недокументированные команды

При использовании 8-разрядной шины данных непосредственно можно
реализовать только 256 кодов команд (28=»256). Остальные 440 (696-256)
кодов команд Z80 являются двухбайтными — первым байтом кода в них стоит
один иэ четырех префиксов: #СВ, #DD, #ED, #FD Следовательно, кроме
описанных 696 кодов команд возможно составить еще много вариантов «не-
учтенных» кодов. Выполнение некоторых из них может привести к вполне
осмысленным результатам. Эти коды составляют так называемые
недокрюн-
тированные команды. В фирменных описаниях процессора эти команды не
приводятся, однако многие программисты пользуются ими. иногда для удобст
ва, иногда иэ соображений секретности (отладчики обычно ««tie берут- такие
команды), иногда для позы, мол, посмотрите, какой я умный

Чаще всего применяются недокументированные команды, работаю
щие с частями индексных регистров как с 6-раэрядными регистрами <>(>щего
назначения. Эти регистры, верней, части регистров обозначаются IXh. IX!
(старшин и младший байты регистра IX) и IYh. 1УГ(старшии и м
чадит и
байты регистра
1Y|.

Ниже приведены некоторые недокументированные команды 760

CV Z P/V S N Н
Ю Г4 $** Г ♦

где г - А, В. С, О, Е;

• - IXh, IXI, IYh, IYI.

CY Z P/V S N Н

LD d,r г d ......

где г - А, В, С. D, Е или п;
d - IXh, IXI, IYh, IVI.

Этими командами удойно ноль «мыться, когда нужно загрузить индекс
ныи penivip и< какою-либо другого регистра. Например, вместо после
до вател ьн ос г и ко м а нд

PUSH DE ; запись в стеке содержимого регистра DE

POP IX ; загрузка регистра IX значением из стека

можно исполыовать

LD IXh.D
LD IXI.E

Хотя вторая последовательность команд занимает в памяти на один байт
больше, время ее вынонения меньше на 9 тактов процессора.
Ниже приведены недокументированные команды, деипвие которых не
отличается or действия «нормальных» команд бай го но и арифметики.

ADD

CY

Z P/V

s

N

H

A,s

A + s - A

t

t V

%

0

t

ADC

A,s

A + s + CV -

A

t

: v

t

0

г

SUB

s

A — s A

i

t V

t

1

t

SBC

A,s

A - s - CY -

A

i

i V

t

1

t

AND

s

A AND s - A

0

t p

t

0

1

OR

s

A OR s A

0

t p

t

0

0

XOR

s

A XOR s - A

0

t p

t

0

0

CP

s

A - s

t

t V

t

1

1

INC

s

s + 1 - s

t V

t

0

t

DEC

s

s - 1 - s

t V

t

1

t

где s - IXh, 1X1, IYh, IYI
Например, для увеличения значения регистра IX на 256 можно исполь-
зовать недокументированную команду
INC IXh, выполнение которой эк-
вивалентно работе целой программы:
PUSH DE ; сохранение содержимого регистра DE

LD DE.2S6 ; загрузка регистра DE значением 256

ADD IX.DE ; увеличение содержимого регистра IX

POP DE ; восстановление значения регистра DE

Приведем еще одну недокументированную команду, дополняющую ipyimy
команд сдвига*

,_. ,___CY Z P/V S N Н

SLI $ (cy} {ТТТГо}- 1 t t Р t 0 о

где s - А, В. С, D, Е, Н, L, (HL), (IX+d) или (IY+d).

Сдвиг содержимого регистра s влево на один разряд, и младший бит
записываете 1, старший бит переписывается во флаг переноса CY.

Мы иринеи лишь неском.ко недокументированных команд микро-
процессора /80, надеемся, что они будут Нам полезны. Не ли же Вас заинте-
ресовали ней шестые |мхможмопи /80, ничто не мешаеч Нам ножепери-
меншроиагь < амим




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Введение - От авторов.
Эксперимент - Телефон или разговор по душам.
News - вернулись Shaitan, Valera Selev и Nuts!
Программистам - О глюках в Shadow Service Monitor'e (Скорпион)
Деда Мороз 2 - новогодние стихи.

В этот день...   23 ноября