Регистры и адресация¶
Карта регистров¶
Регистровое пространство I8046 организовано по 5-битному адресу (32 регистра). Ниже приведена полная карта.
| Адрес | Имя | Описание |
|---|---|---|
00h |
r0 |
Нулевой регистр (всегда 0) |
01h |
X1 |
24-битный регистр общего назначения X1 |
02h |
XL1 |
Младший байт X1 |
03h |
XH1 |
Старший байт X1 |
04h |
X2 |
24-битный регистр X2 |
05h |
XL2 |
Младший байт X2 |
06h |
XH2 |
Старший байт X2 |
07h |
X3 |
24-битный регистр X3 |
08h |
XL3 |
Младший байт X3 |
09h |
XH3 |
Старший байт X3 |
0Ah |
X4 |
24-битный регистр X4 |
0Bh |
XL4 |
Младший байт X4 |
0Ch |
XH4 |
Старший байт X4 |
0Dh |
X5 |
24-битный регистр X5 |
0Eh |
XL5 |
Младший байт X5 |
0Fh |
XH5 |
Старший байт X5 |
10h |
IX |
Индексный регистр X |
11h |
IY |
Индексный регистр Y |
12h |
SP |
Указатель стека |
13h |
BP |
Указатель базы |
14h |
CS |
Сегмент кода |
15h |
DS |
Сегмент данных |
16h |
SS |
Сегмент стека |
17h |
ES |
Дополнительный сегмент |
18h |
SCS |
Теневая копия CS |
19h |
SDS |
Теневая копия DS |
1Ah |
SSS |
Теневая копия SS |
1Bh |
SES |
Теневая копия ES |
1Ch |
A0 |
Регистр-аккумулятор адреса 0 |
1Dh |
A1 |
Регистр-аккумулятор адреса 1 |
1Eh |
FL |
Регистр флагов |
1Fh |
IC |
Счётчик инструкций |
Составные регистры X¶
Каждый из пяти регистров X1–X5 является 24-битным и состоит из трёх частей:
XHn- старший байт (High)XLn- младший байт (Low)Xn- полный 24-битный регистр, адресуемый как[XHn + XLn]
Это позволяет работать как с целыми 24-битными значениями, так и с отдельными байтами.
Режимы адресации (Modes)¶
В инструкциях, где присутствует поле SF (suffix / mode), используются следующие режимы:
| ID | BIN | Имя | Назначение |
|---|---|---|---|
00h |
0000 |
Byte | Байтовый доступ |
01h |
0001 |
Word | Слово (16 бит) |
02h |
0010 |
Addr | Адрес (24 бита) |
03h |
0011 |
Dword X | Двойное слово X |
04h |
0100 |
Register | Доступ через регистр (lookup) |
05h |
0101 |
Qword X | Четверное слово X |
Важно: при вычислении адреса вида
[R + S]результат должен быть меньше размера памяти, иначе поведение не определено.