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

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

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

Регистровое пространство 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] результат должен быть меньше размера памяти, иначе поведение не определено.