Z380 [8]

ZXNet эхоконференция «zx.spectrum»

От Walerij Kozhevnikov (500:95/462. Кому All 06.04.1998


=== Cut ===

╔══════════════════════════════════════════════════════════════╗
║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░ MPU Z380 ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
╚══════════════════════════════════════════════════════════════ў
(Продолжение. Hачало в номерах 7,6).

(C) WLODEK BLACK.

Биты, байты, слова и длинные слова.

Hетрудно убедиться, что эти понятия настолько просты и естест-
венны, что даже нет необходимости что-либо пояснять:

┌──┬──┬──┬──┬──┬──┬──┬──┐
│ 7│ 6│ 5│ 4│ 3│ 2│ 1│ 0│ - биты в байте
└──┴──┴──┴──┴──┴──┴──┴──┘

Двухбайтовое 16-разрядное слово:

┌───────────────────────┐
│ старший байт │ - адрес N+1
├───────────────────────┤
│ младший байт │ - адрес N <--- адрес
└───────────────────────┘

Четырехбайтовое 32-разрядное длинное слово:

┌───────────────────────┐
│ d31...24 │ - адрес N+3
├───────────────────────┤
│ d23...16 │ - адрес N+2
├───────────────────────┤
│ d15...8 │ - адрес N+1
├───────────────────────┤
│ d7...0 │ - адрес N <--- адрес
└───────────────────────┘

Пространство памяти.

Единственное, что, пожалуй, требует по крайней мере упоминания,
это характер обращения к памяти при доступе к 16- или 32-разряд-
ному данному. Hесмотря на то, что шина данных 16-разрядная, су-
ществует разница в обращении к данному, адрес начального байта
которого четный (A0=0) или нечетный (A0=1). Трудно было понять
(в очередной раз...), но вроде бы происходит следующее: если бо-
лее чем 1-байтовый операнд "ложится" на четный адрес, то все в
порядке - сначала идет младший байт, потом старший; в противном
случае байты меняются местами, так, чтобы младший байт всегда
ложился на четный адрес, а старший - на нечетный; при "неправи-
льной" расстановке байтов обращение к памяти занимает 2 машин-
ных цикла вместо одного.

Два пространства устройств ввода-вывода -
внешнее и внутреннее.

Внешнее (external) пространство устройств ввода-вывода представ-
лено подмножеством портов Z80 и расширенным до 32 бит адресным
I/O-пространством. Команды ввода-вывода из подмножества Z80 ос-
тались прежними и в мнемониках, и по сути (16 старших бит шины
адреса сбрасываются в 0). Hекоторые дополнительные команды:

Группа
инструкций A31...A24 A23...A16 A15...A8 A7...A0

IN dst,(C) BC31-BC24 BC23-BC16 BC15-BC8 BC7-BC0
IN0 dst,(n) 00000000 00000000 00000000 n
INA(W) dst,(mn)00000000 00000000 m n

DDIR IB INA(W) dst,(lmn)
00000000 l m n

DDIR IW INA(W) dst,(klmn)
k l m n

(операции вывода аналогично).

Префиксы "DDIR IB", "DDIR IW" означают получение дополнительно-
го байтового или словарного данного.

Можно заметить появление прямой адресации портов до 32 бит адре-
са и такую же косвенную адресацию по расширенной паре BC.
Внешннее пространство устройств ввода-вывода обеспечивает также
истинно 8-битовую прямую адресацию портов командами вида
OUT0 (n),r , где n - 8-битный адрес порта; r - регистр; 24 стар-
ших бита адреса сброшены в 0.


Регистр флагов.

┌───┬───┬───┬───┬───┬───┬───┬───┐
│ S │ Z │ x │ H │ x │P/V│ N │ C │
└───┴───┴───┴───┴───┴───┴───┴───┘

S - признак знака;
Z - признак нуля;
H - признак полупереноса;
P/V - флаг четности/переполнения;
N - признак сложения/вычитания (1 - вычитание, 0 - сложение);
C - флаг переноса.

Флаг N используется командой DAA для определения вида предыду-
щей операции (сложения или вычитания).
Все, как в нашем старом добром знакомом Z80.

(Продолжение следует).

Jason.

Powered by ScorpionZS256turbo+/SMUC/HDD'IDE130Mb/FDD'800/
/CMOS/Covox/ATkbd/Mouse/CDOS...

=== Cut ===