-
Notifications
You must be signed in to change notification settings - Fork 0
Процессоры ARM. Наборы команд. Основные регистры
- ARM - 32-битный набор команд
- Thumb - 16-битный набор команд
- Thumb2 - 16/32-битный набор команд
- A64 - 32-битный набор
- R0-R12 - общего назначения
- R13 - SP (Stack Pointer) - указатель стека
- R14 - LR (Link Register) - регистр связи
- R15 - PC (Program Counter) - аналог IP
Первые 13 регистров с точки зрения архитектуры являются абсолютно равноправными. Остальные три регистра имеют специальное назначение. Счетчик команд не может использоваться в качестве РОН. LR может использоваться как РОН, когда он не применяется по своему прямому назначению. Для SP - зависит от версии архитектуры.
CPSR (Current Status Program Register) — это 32-битный регистр, используемый в архитектуре ARM для хранения информации о состоянии процессора и текущем режиме выполнения. CPSR содержит флаги состояния процессора, такие как флаги условий, флаг переноса, флаги прерывания и другие.
Флаги условий (Condition Flags) — это флаги, которые устанавливаются в зависимости от результата выполнения инструкций.
- N (Negative) — устанавливается, если результат операции отрицательный.
- Z (Zero) — устанавливается, если результат операции равен нулю.
- C (Carry) — устанавливается, если результат операции превышает диапазон.
- V (Overflow) — устанавливается, если результат операции приводит к переполнению.
CPSR также содержит информацию о текущем режиме выполнения, таком как режим пользователя (User mode), режим привилегированного доступа (Privileged mode), режим системного (System mode) и другие.