Биты, которые на рисунке 2-10 идентифицируются как «Не изменять» (DNM), читать как Zero (RAZ), не должны быть изменены программным обеспечением , Эти биты являются:ARM Текущий статус регистрации программы (SPSR) стратегия чтения-изменения-записи
• Читаемым, для того, чтобы состояние процессора должны быть сохранены, например, во время контекста процесса переключателей
• Writable, для того, чтобы состояние процессора должны быть восстановлены. Для обеспечения совместимости с будущими процессорами ARM и рекомендуется использовать стратегию чтения-изменения-записи при изменении CPSR.
Но с побитовыми операциями вы уже можете четко определить, какие биты вы хотите изменить, не изменяя никаких неожиданных значений, и это позволяет избежать лишних циклов. В чем причина этой рекомендации?
Существуют специальные инструкции по предотвращению и уменьшению маскировки. Например, 'msr cpsr_c, r2'. См. Также: [Режимы исключения CPSR] (http://stackoverflow.com/questions/15641149/current-program-status-register-exception-modes) –
В вашем названии вы написали SPSR (сохраненный регистр статуса программы), но я думаю вы имели в виду CPSR. –
@ Étienne Это настоящая CPSR против SPSR; они разные. Но базовая концепция одинаково применима к обоим. –