Регистры и адресация¶
Карта регистров¶
Регистровое пространство 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 |