Skip to main content

Регистры

Запись в часть 64-битного регистра, например в регистр AL, влияет только на биты этой части. В случае AL загрузка 8-битного значения изменяет младшие 8 битов RAX, оставляя остальные 48 бит без изменений.

Виды регистров

Название Разряд Тип Назначение

RAX

EAX

AX

AH, AL

64

32

16

8

Универсальный (Accumulator): для арифметических операций

RBX

EBX

BX

BH, BL

64

32

16

8

Универсальный (Base pointer): указатель на базу стека внутри функции

RCX

ECX

CX

CH, CL

64

32

16

8

Универсальный (Counter): для хранения счетчика цикла

RDX

EDX

DX

DH, DL

64

32

16

8

Универсальный (Data): для арифметических операций и операций ввода-вывода

R8-R15

R8D-R15D

R8W-R15W

R8B-R15B

64

32

16

8

Универсальный 8 универсальных регистров

RSP

ESP

SP

64

32

16

Указатели (Stack pointer): указатель на верхушку стека

RBP

EBP

BP

64

32

16

Указатели (Base pointer): указатель на базу стека внутри функции

RSI

ESI

SI

64

32

16

Индексы (Source index): указатель на источник при операциях с массивом

RDI

EDI

DI

64

32

16

Индексы (Destination index): указатель на место назначения в операциях с массивами

RFLAGS


Флаги Биты состояния процессора после предыдущей операции

EIP

32



ST0 - ST7

80

Специальные Регистры для работы с числами с плавающей точкой

YMM0-YMM15

XMM0 - XMM15

256

 

128



 

Каждый регистр можно настроить как четыре 32-битных регистра с плавающей точкой; два 64-битных регистра двойной точности с плавающей точкой; или шестнадцать 8-битных, восемь 16-битных, четыре 32-битных, два 64-битных или один 128-битный целочисленный регистр.

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

Бит

Имя

назначение

0

CF

Флаг переноса (Carry flag):казывает, был ли при сложении перенос или заимствование при вычитании. Используется в качестве входных данных для инструкций сложения и вычитания.

2

PF

Флаг четности: устанавливается, если младшие 8 битов результата содержат четное число единиц.

4

AF

Флаг настройки: указывает, был ли при сложении перенос или заимствование при вычитании младших 4 битов.

6

ZF

Флаг нуля (Zero flag): устанавливается, если результат операции равен нулю

7

SF

Флаг знака (Sign flag): устанавливается, если результат операции отрицательный.

8

TF

Флаг прерывания выполнения (Trap flag): используется при одношаговой отладке.

9

IF

Флаг разрешения прерывания: установка этого бита разрешает аппаратные прерывания.

10

DF

Флаг направления: контролирует направление обработки. Если не установлен, то порядок от самого младшего до самого старшего адреса. Если установлен, то порядок обратный - от самого старшего до самого младшего адреса.

11

OF

Флаг переполнения (Overflow flag): если устанавлен, то операция привела к переполнению со знаком.

12-13

IOPL

Уровень привилегий ввода-вывода (I/O privilege level): уровень привилегий текущего выполняемого потока. IOPL 0 — это режим ядра, а 3 — пользовательский режим.

14

NT

Флаг вложенной задачи (Nested task flag): управляет цепочкой прерываний.

16

RF

Флаг возобновления (Resume flag): используется для обработки исключений во время отладки.

17

VM

Флаг режима виртуальной машины 8086: если установлен, режим совместимости с 8086 активен. Этот режим позволяет запускать некоторые приложения MS-DOS в контексте операционной системы в защищенном режиме.

18

AC

Флаг проверки выравнивания (Alignment check flag): если установлен, проверка выравнивания памяти активна. Например, если установлен флаг AC, сохранение 16-битного значения по нечетному адресу вызывает исключение проверки выравнивания. Процессоры x86 могут выполнять невыровненный доступ к памяти, когда этот флаг не установлен, но количество требуемых командных циклов может увеличиться.

19

VIF

Флаг виртуального прерывания (Virtual interrupt flag): виртуальная версия флага IF в виртуальном режиме 8086..

20

VIP

Флаг ожидания виртуального прерывания: Устанавливается, когда прерывание находится в состоянии ожидания в виртуальном режиме 8086.

21

ID

Флаг ID: если этот бит установлен, то поддерживается инструкция cpuid. Эта инструкция возвращает идентификатор процессора и информацию о его функциях.