|
Cдвиг вправо на один разряд, в старший бит записывается 0, младший бит переписывается,во флаг переноса CY (деление на 2).
1-я буква | 2-я буква | 3-я буква | 4-я буква |
R - циклический сдвиг | L - влево | C – мимо CY | A - акуммулятор |
S - нециклический сдвиг | R - вправо | нет – через CY | нет – другой, указанный регистр |
Команды циклического переноса
CY Z P/V S N H
RLD • o P o 0 0
Левый арифметический циклический перенос тетрады из аккумулятора в ячейку памяти, адресуемую регистром HL. Старшая тетрада (биты 7... 4) ячейки памяти переносится в младшую тетраду аккумулятора (биты 3...0), младшая тетрадa аккумулятора переносится в младшую тетраду ячейки памяти, а младшая тетрада ячейки памяти — в старшую тетраду ячейки памяти.
CY Z P/V S N H
RRD • o P o 0 0
Правый арифметический циклический перенос тетрады из аккумулятора в ячейку памяти, адресуемую регистром HL. Старшая тетрада (биты 7...4) ячейки памяти переносится в младшую (биты 3...0), младшая тетрада ячейки памяти переносится в младшую тетраду аккумулятора, а младшая тетрада аккумулятора — в старшую тетраду ячейки памяти.
Команды операций над отдельными битами
_ CY Z P/V S N H
BIT b,d db ® Z • o Ï Ï 0 1
где d - A,B,C,D,E,H,L,(HL),(IX+d),(IY+d).
Проверка состояния бита, номер которого задается числом Ь в пределах от 0 (младший) до 7 (старший). Результат проверки помещается в бит Z регистра флагов (если проверяемый бит равен нулю, то Z=l).
CY Z P/V S N H
SET b,d 1 ® db • • • • • •
где d - А,В,С,D,E,H,L,(HL),(IX+d),(IY+d).
Установка бита. В бит с номером Ь записывается единица.
CY Z P/V S N H
RES b,d 0 ® db • • • • • •
где d - А,В,С,D,E,H,L,(HL),(IX+d),(IY+d).
Сброс бита. В бит с номером Ь записывается ноль.
Команды управления процессором
CY Z P/V S N H
NOP • • • • • •
Нет операции. Регистры и флаги не изменяются (за исключением регистров PC и R), процессор переходит к выполнению следующей за NOP команды.
CY Z P/V S N H
HALT • • • • • •
Останов процессора. Выполнение команды HALT эквивалентно бесконечному выполнению команды NOP, но без изменения значения регистра счетчика команд PC. Выход из состояния останова происходит либо при аппаратном сбросе процессора, либо с приходом сигнала маскируемого или немаскируемого прерывания. После выполнения программы обработки прерывания, управление будет передано на ячейку, следующую за командой HALT.
В ZX Spectrum команда HALT обычно используется для синхронизации выполнения программы относительно полукадровых прерываний, происходящих каждые 1 /50 секунды.
CY Z P/V S N H
DI 0 ® IFF1;0 ® IFF2 • • • • • •
Запрет маскируемых прерываний*. Сбрасывается триггер разрешения прерываний IFF.
CY Z P/V S N H
EI 1 ® IFF1;1 ® IFF2 • • • • • •
Разрешение маскируемых прерываний. Устанавливается триггер разрешения прерываний IFF.**
CY Z P/V S N H
IM 0 • • • • • •
IM 1
IM 2
Установка режима обработки маскируемых прерываний. Устанавливаются, соответственно, режимы О, 1 или 2.
Команды для работы с подпрограммами
CY Z P/V S N H
CALL nn SP-2®SP;PC®(SP);nn®PC[ • • • • • •
Безусловный переход к подпрограмме, расположенной по адресу nn, адрес следующей за CALL команды записывается в стек.
CY Z P/V S N H
CALL cc,nn SP-2®SP;PC® (SP);nn®PC[ • • • • • •
(при выполнении условия сс)
где сс — NZ — не ноль (флаг 2=0);
Z — ноль (флаг Z=1);
NC — нет переноса (флаг CY=0);
С — перенос (флаг CY=1);
PO — нечетность (флаг P/V=0);
РЕ - четность (флаг P/V=1);
Р — положительное (флаг S=0);
М — отрицательное (флаг S=1).
Условный переход к подпрограмме, расположенной по адресу nn. Переход осуществляется при выполнении условия cc, в противном случае команда игно рируется и управление передается следующей команде программы.___________
[На самом деле сначала выполняется nn®PC а затем всё остальное, что я обнаружил при взломе одной игрушки.
*)Более подробно о командах, обслуживающих прерывания, см. «Архитектура ZX Spectrum».
**)Следует отметить, что при выполнении команды EI запрещаются маскируемые прерывания на время между этой и следующей командами.
CY Z P/V S N H
RET (SP) ® PC;SP + 2 ® SP • • • • • •
Безусловный возврат из подпрограммы. Управление передается команде, расположенной по адресу, извлекаемому из стека.
CY Z P/V S N H
RET cc (SP) ® PC;SP + 2 ® SP • • • • • •
(при выполнении условия cc)
где cc - NZ,Z,NC,С,PO,РЕ,Р,М (см. CALL cc,nn).
Условный возврат из подпрограммы. Возврат из подпрограммы происходит при выполнении условия cc, в противном случае команда игнорируется.
CY Z P/V S N H
RETI IFF2®IFF1;(SP) ®PC;SP+2®SP • • • • • •
Дата добавления: 2015-10-28; просмотров: 123 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Установка флага переноса CY. | | | Условный переход по относительному адресу при ненулевом счетчике. |