Регістри статусу програми

Процесор ARM7TDMI містить регістр CPSR і п'ять регістрів SPSR для використання в обробниках виняткових ситуацій. Регістри статусу програми:

  • зберігають інформацію про більшість недавно виконаних операціях АЛУ
  • керують включенням і відключенням переривань
  • встановлюють режим роботи процесора.

Призначення біт показано на малюнку 2.6.


Малюнок 2.6. Формат регістра статусу програми

Прим. З метою сумісності з майбутніми процесорами ARM не рекомендується торкатися значення зарезервованих біт. Один із способів збереження незмінності цих біт - використання послідовності "читання-модифікація-запис" при зміні вмісту CPSR.

Далі будуть розглянуті: прапори коду умови, біти управління і зарезервовані біти.

6.1 Прапори коду умови

Біти N, Z, C і V є прапорами коду умови, вони встановлюються при виконанні арифметичних і логічних операцій. Крім того, вони оновлюються при виконанні інструкцій MSR і LDM. Процесор ARM7TDMI перевіряє дані прапори для визначення необхідності виконання інструкції. Всі інструкції можуть виконуватися за умовою в стані ARM. У стані Thumb тільки інструкція переходу може виконуватися за умовою. Більш детальна інформація за умовним виконання інструкцій приведена в "ARM Architecture Reference Manual".

6.2 Біти управління

Нижні 8 біт регістра PSR спільно називаються бітами управління.

До них відносяться:

  • біти відключення переривань
  • біт T
  • біти режиму

Біти управління змінюють свій стан при виникненні виняткових ситуацій. Якщо процесор працює привілейованому режимі, то програма може маніпулювати даними битами.

Біти відключення переривань

Біти I і F є бітами відключення переривань:

  • якщо біт I = 1, то відключаються переривання IRQ;
  • якщо біт F = 1, то відключаються переривання FIQ.

Біт T відображає робочий стан:

  • якщо T = 1, то процес працює в стані Thumb
  • якщо T = 0, то процесора працює в стані ARM.

Стан роботи також відображається зовнішнім сигналом TBIT.

Увага: не користуйтеся інструкцією MSR для примусового зміни стану біта T в регістрі CPSR. В цьому випадку, процесор перейде в непередбачуване стан.

Біти M [4: 0] визначають режим роботи процесора (див. Таблицю 2.2). Не всі поєднання даних біт визначають дійсний режим процесора, тому, необхідно використовувати тільки наведені нижче значення.

Таблиця 2.2. Значення біт режиму регістра PSR

Схожі статті