Skip to content

Процессоры ARM. Наборы команд. Основные регистры

Ivan Bogatyrev edited this page Jun 11, 2023 · 1 revision

Процессоры 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

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) и другие.

img.png

Clone this wiki locally