╔══════════════════════════════════════════════════════════════╗
║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░ MPU Z380 ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
╚══════════════════════════════════════════════════════════════╝
(Продолжение. Предыдущие публикации - в номерах 10,9,8,7)
(C) WLODEK BLACK.
Группа команд обмена, пересылки блока и группового поиска.
Новые команды:
EX BC,DE BC(15-0) <-> DE(15-0) Обмен значениями пар
EX BC,HL BC(15-0) <-> HL(15-0) основных РОН.
В Long Word mode- 32 бит
EX A,r A <-> r Обмен 8-разрядными значениями
аккумулятора и другого регистра,
например, EX A,B; EX A,E.
EX A,(HL) A <-> (HL) Обмен значениями аккумулятора и
ячейки памяти, адресуемой парой
HL.
EX r,r' r <-> r' Обмен значениями 8-разрядного
регистра и его альтернативного
"двойника"; например, EX B,B'.
EX pp,pp' pp(15-0) <-> pp'(15-0) Обмен 16-разрядными зна-
чениями пары и альтернативной
пары, например, EX BC,BC'.
В Long Word mode - 32 бит.
EX XY,XY' XY(15-0) <-> XY'(15-0) Обмен 16-разрядными зна-
чениями IX или IY с альтернатив-
ным индексным регистром.
В Long Word mode - 32 бит.
EX pp,XY pp(15-0) <-> XY(15-0) Обмен 16-разрядными зна-
чениями пары и индексного регис-
тра, например, EX HL,IX.
В Long Word mode - 32 бит.
EX IX,IY IX(15-0) <-> IY(15-0) Обмен 16-разрядными зна-
чениями между двумя индексными
регистрами.
В Long Word mode - 32 бит.
EXALL SR(24)<- NOT SR(24) Переключение с основного на
SR(16)<- NOT SR(16) альтернативный или наоборот
SR(8) <- NOT SR(8) наборов IY,IX,BC,DE,HL.
EXXX SR(16)<- NOT SR(16) Переключение с основного на
альтернативный или наоборот наборов регистров IX
EXXY SR(24)<- NOT SR(24) То же для IY.
Обратите внимание: благодаря программной доступности регистра SR
основные и альтернативные наборы регистров не равноправны! Прог-
раммно можно установить, какой из наборов активен! Из-за этого
следует четко различать ОБМЕН значениями между регистрами и
ПЕРЕКЛЮЧЕНИЕ наборов регистров!
SWAP pp pp(31-16) <-> pp(15-0) Обмен значениями старшей
и младшей 16-разрядной половины 32-разрядной па-
ры. Например, SWAP HL. Действует независимо от
установленного формата операнда по длине слова.
SWAP XY XY(31-16) <-> XY(15-0) То же для IX,IY.
LDIW (DE) <- (HL) Пересылка одиночного
(DE+1) <- (HL+1) слова. Адреса области-
DE <- DE+2 источника и области-
HL <- HL+2 приемника должны быть
BC(15-0) <- BC(15-0)-2 четными.
От LDI эта команда отличается тем, что за ОДИН
машинный цикл выполняет пересылку слова, а не
байта.
LDDW (DE) <- (HL) Пересылка слова с дек-
(DE+1) <- (HL+1) рементом адресов.
DE <- DE-2
HL <- HL-2
BC(15-0) <- BC(15-0)-2
LDIRW Аналогичные команды групповой пересылки слов.
LDDRW Выполняются, пока BC не достигнет нуля.
Общие свойства LDIW,LDDW,LDIRW,LDDRW:
- в режиме "длинное слово" пересылаются 2 слова за один машинный
цикл, а BC уменьшает свое значение на 4;
- адреса области-источника и области-приемника должны быть выра-
внены на четный адрес (что произойдет в противном случае, опи-
сание умалчивает);
- в режиме "Z80" адресация закольцована на младших 64К.
Группа команд типа CPI, CPIR не расширена и осталась прежней. В
ней также имеет место закольцованность адресации в пределах 64К
в нерасширенном режиме работы процессора.
"Старые" EX DE,HL; EXX; EX (SP),HL; EX (SP),XY в режиме"длинное
слово" работают с 32-разрядными парами регистров.
Для EX (SP),rr справедливо все, что было сказано о закольцован-
ности адресов.
Группа 8-разрядной арифметики и логики.
Объявлены"законными" операции с половинками индексных регистров:
ADD A,XYU
ADD A,XYL
и все смежные с ними - ADC,SUB,SBC,AND,OR,XOR,CP, а также опера-
ции инкремента и декремента:
INC XYU DEC XYU
INC XYL DEC XYL
Новые операции:
TST r A AND r Логическое "И" над аккумулятором
и вторым операндом с установкой
флагов, но без засылки результата в аккумулятор. (r - любой до-
пустимый по способам адресации операнд - как для AND).
TST n A AND n То же с константой в роли второ-
го операнда.
TST (HL) A AND (HL) То же над содержимым ячейки, ад-
ресуемой парой HL.
[ Продолжение следует ].