╔══════════════════════════════════════════════════════════════╗
║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░ MPU Z380 ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
╚══════════════════════════════════════════════════════════════╝
[ Продолжение. Предыдущие публикации в NN 12,11,10,9,8,7 ]
(C) WLODEK BLACK
Группа инструкций декодирующих директив
Мнемоника Смысл Комментарий
DDIR W Одну последующую инструкцию выполнить в режиме
"слово"
DDIR IB,W Одну последующую инструкцию выполнить в режиме
"слово"; расширить непосредственный операнд на
1 дополнительный байт
DDIR IW,W Одну последующую инструкцию выполнить в режиме
"слово"; расширить непосредственный операнд на
слово (2 байта)
DDIR IB Расширить непосредственный операнд на 1 байт
DDIR LW Одну последующую инструкцию выполнить в режиме
"длинное слово"
DDIR IB,LW Одну последующую инструкцию выполнить в режиме
"длинное слово"; расширить непосредственный
операнд на 1 байт
DDIR IW,LW Одну последующую инструкцию выполнить в режиме
"длинное слово"; расширить непосредственный
операнд на слово
DDIR IW Расширить непосредственный операнд на слово.
Характерной особенностью директив декодирования является их ис-
полнение в одном машинном цикле с инструкцией, к которой отно-
сится директива декодирования, благодаря чему исполнение собст-
венно директивы декодирования отнимает 0 (!) дополнительных
тактов процессора.
Ранее уже говорилось, но я вкратце еще раз напомню, для чего
служат директивы декодирования. Например, в операции
LD E,(IX+d)
смещение "d", обычно являющееся однобайтовым, можно расширить
до 2-х - DDIR IB LD E,(IX+dd)
или даже 3-х - DDIR IW LD E,(IX+ddd) - байт. Ну как, относите-
льная адресация в диапазоне +- 8 мегабайт (24-й разряд, как и
раньше, знаковый) - достаточно для любых реальных программ?
Группа команд 16- и 32-разрядной арифметики
и логики
Новые команды:
ADD SP,nn SP <- SP+nn Модификация указателя стека
SUB SP,nn SP <- SP-nn путем сложения или вычтания
с константой. В расширенном
режиме процессора SP имеет
32 значащих бита.
ADDW [HL,]pp HL <- HL+pp Сложение HL с другой парой pp.
Отличается от ADD HL,pp влияни-
ем на все флаги.
ADDW [HL,]nn HL <- HL+nn Сложение HL с 16-разрядной кон-
стантой (можно DDIR)
ADDW [HL,]XY HL <- HL+XY Сложение HL с IX или IY
ADDW [HL,](XY+d) HL <- HL+(XY+d)Сложение HL со словом (!) с ад-
реса (XY+d). "d" можно расширить
через DDIR
ADCW [HL,]uu HL <- HL+uu+CY Сложение с учетом переноса
SUBW [HL,]uu HL <- HL-uu Вычитание
SBCW [HL,]uu HL <- HL-uu-CY Вычитание с учетом переноса
ANDW [HL,]uu HL <- HL and uu Логическое И
ORW [HL,]uu HL <- HL or uu Логическое ИЛИ
XORW [HL,]uu HL <- HL xor uu Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ
CPW [HL,]uu HL-uu Сравнение с установкой флагов
где "uu" - любой операнд, как в ADDW; CY - признак переноса
ADD HL,(nn) HL <- HL+(nn) Сложение со словом с адреса (nn)
SUB HL,(nn) HL <- HL-(nn) Вычитание слова с адреса (nn)
В расширенном режиме процессора
(не "длинное слово"!) - 32 бит.
В обычном режиме адрес можно ра-
сширить через DDIR.
"Старые" команды семейств ADD HL,rr; ADD XY,rr; INC rr; INC XY;
DEC rr; DEC XY в расширенном режиме процессора (имеется в виду
не режим "длинное слово", а доступ к 4Г памяти) работают с 32-
разрядными операндами. В обычном режиме расширение разрядности
невозможно по причине того, что регистр SP в кодах команд этой
группы присутствует наравне с другими парами регистров, а он
не расширяется без переключения процессора в расширенный режим.
[ Продолжение следует ].