Перейти к содержанию

Регистры и адресация

Карта регистров

Регистровое пространство I80148 содержит 36 регистров и адресуется 6-битным полем (00h–24h).

Регистр нуля

Адрес Имя Описание
00h r0 Всегда равен нулю

Регистры общего назначения (GPR)

Три набора по 7 регистров, каждый набор имеет свою разрядность:

Адрес Имя Разрядность Описание
01h–07h EX1–EX7 Dword (32 бита) Расширенные регистры
08h–0Eh X1–X7 Word (16 бит) Регистры слова
0Fh–15h XL1–XL7 Byte (8 бит) Регистры байта

Специальные регистры

Адрес Имя Разрядность Описание
16h IC Dword Счётчик инструкций (Instruction Counter)
17h FL Byte Регистр флагов (Flags)
18h SP Dword Указатель стека (Stack Pointer)
19h BP Dword Указатель базы (Base Pointer)
1Ah IX Dword Индексный регистр-источник (Source Index)
1Bh IY Dword Индексный регистр-приёмник (Destination Index)
1Ch–23h A0–A7 Dword Адресные регистры (могут использоваться как GPR)
24h IDTR Dword Регистр таблицы дескрипторов прерываний

ABI регистрового файла

С точки зрения АЛУ и внутренней логики, регистры распределены по ролям:

Роль Описание
A ALU_A, вход данных (DATA_OUT)
B ALU_B, источник адреса (SRC_ADDR)
C Источник адреса (SRC_ADDR)

Режимы адресации (Modes)

Поле SF в инструкциях задаёт режим доступа к памяти. Каждый режим определяет, какие линии памяти (LE0–LE3) активны.

ID BIN Имя LE0 LE1 LE2 LE3
00h 0000 Byte n n n y
01h 0001 Word n n y y
02h 0010 Dword y y y y
03h 0011 Qword X x x x x
04h 0100 REG ? ? ? ?

Легенда: - LEn - линия памяти (Memory Line Enable). - n - не активна. - y - активна. - x - не реализовано. - ? - зависит от конкретного режима.

Режим REG (04h) - это look-up таблица: значение SF определяет, каким режимом на самом деле пользоваться, исходя из того, какой регистр указан в инструкции.

Таблица соответствия регистров режимам

Когда в инструкции указан режим REG, реальный режим доступа определяется по таблице:

Диапазон ID Регистры Режим Единица
01h–07h EX1–EX7 02h Dword
08h–0Eh X1–X7 01h Word
0Fh–15h XL1–XL7 00h Byte
16h IC 02h Dword
17h FL 00h Byte
18h SP 02h Dword
19h BP 02h Dword
1Ah–1Bh IX–IY 02h Dword
1Ch–23h A0–A7 02h Dword