Nicron
#15
10 января 1997 |
|
Железо - обзор микропроцессора Zilog Z380, продолжение.
╔══════════════════════════════════════════════════════════════╗ ║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░ MPU Z380 ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║ ╚══════════════════════════════════════════════════════════════╝ [ Продолжение. Предыдущие публикации - в номерах 14,12,11,10, 9,8,7 ]. (C) WLODEK BLACK. Группа инструкций умножения и деления. Мнемоника Смысл Комментарий MLT dd dd <- ddH*ddL "dd" - пара регистров. Результат умножения мла- MLT BC дшего и старшего байтов MLT DE помещается в ту же пару. MLT HL MLT SP Команда MLT является заимствованной из системы команд Z180 (для совместимости). Она не влияет на флаги (!). MULTW [HL,]pp HL(31-0) <- HL(15-0)*pp(15-0) Умножение слов. "pp" - пара регистров. MULTW [HL,]XY HL(31-0) <- HL(15-0)*XY(15-0) "XY" - IX или IY. MULTW [HL,]nn HL(31-0) <- HL(15-0)*nn "nn" - непосредственная константа-слово (которая может быть расширена до 24 или 32 бит с помощью DDIR). MULTW (XY+d) HL(31-0) <- HL(15-0)*(XY+d) Умножение 16-разрядного значения пары HL на слово (!) с адреса (XY+d), где "d" - смещение - может быть расширено до слова или 24-битного значения через DDIR. MULTUW uu HL(31-0) <- HL(15-0)*uu "uu" - pp,nn,XY,(nn), (XY+d). Разновидность команды умножения с любым способом адресации. Выполняется на один такт дольше по сравнению с MULTW. Команды умножения воздействуют на флаги S,Z,C. Флаг P/V=0. DIVUV [HL,]pp HL(15-0) <- HL(31-0)/pp; Деление 32-раз- HL(31-16) <- остаток рядного значения HL на 16-разряд- ное значение пары. Остаток заносится в старшую половину 32-разрядной пары HL. DIVUW [HL,]XY HL(15-0) <- HL(31-0)/XY; То же для HL(31-16) <- остаток. IX, IY. DIVUW [HL,]nn HL(15-0) <- HL(31-0)/nn; Деление HL(31-16) <- остаток. на константу. Константа может быть расширена до 24-х или 32-х бит через DDIR. DIVUW [HL,](XY+d) HL(15-0) <- HL(31-0)/(XY+d); Деление 32-разр. HL(31-16) <- остаток. HL на слово (!) с адреса (XY+d). Смещение "d" может быть расширено до 16 или 24 бит с помощью DDIR. Влияние команд деления на флаги: S=0; Z - по результату; P/V - "V" по результату. CY не меняется. Группа команд 8-разрядных сдвигов. В ней не прибавилось ни одной новой команды. Единственное отли- чие - возможность расширения смещения "d" до 16 или 24 бит в командах с адресацией по (XY+d). И еще: не пройдет номер с левы- ми командами наподобие RL (IX+d),r (сдвиг в ячейке памяти с од- новременной пересылкой результата в регистр) - эти коды заняты другими командами. Группа команд 16- и 32-разрядных сдвигов. RLCW pp Как RLC, только для пары. RLCW XY То же для IX, IY. RLCW (HL) Сдвиг слова (!) по адресу (HL). RLCW (XY+d) Сдвиг слова (!) по адресу (XY+d). "d" может быть расширено через DDIR. RLW То же, что аналогичные инструкции Z80, RRCW только для операнда формата слово. RRW SLAW SRAW SRLW Влияние на флаги аналогично соответствующим инструкциям Z80. Группа команд работы с отдельными битами. SET RES BIT Здесь все по-прежнему. Команды работают с теми же 8-битными опе- рандами, как и в прототипе. Единственное отличие - в операциях с адресацией по (XY+d) смещение "d" может быть расширено до 16 или 24 бит с помощью DDIR. Группы команд 16-разрядной работы с отдельными битами не существует. [ Продолжение следует ].
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября