Skip to main content

Что такое регистр статуса?

Регистр состояния - также известный как регистр флага, слово состояния программы и регистр кода состояния - определяется как совокупность битов флага внутри процессора. Регистр является схемой процессора и очень похож на область памяти, то есть данные могут быть записаны и прочитаны из него. В отличие от ячейки памяти, регистр состояния часто не имеет адреса, потому что микропроцессор использует его внутри. В центральном процессоре (ЦП), который является 8-битным, бит регистра состояния может быть установлен , равным номеру 1, или очищен , равным номеру 0, по различным результатам работы процессора. Процессор иногда устанавливает или очищает биты сам, но в других случаях конкретная программная инструкция устанавливает или очищает биты.

Биты регистра состояния также называются флагами или битами флага и используются программистом для определенных целей программирования. Каждый флаг в регистре состояния имеет уникальную цель. Флаг переноса устанавливается, если предыдущая операция выполнила седьмой бит или отрицательный флаг или переполнила флаг переноса. Он устанавливается во время смены логики, сравнения и арифметики. Нулевой флаг устанавливается, если самый последний результат операции был 0.

Флаг, называемый «отключение прерывания», работает, разрешая или запрещая работу прерываний, которые являются командами, которые временно останавливают определенные операции, чтобы можно было выполнять другие операции. Когда этот конкретный флаг устанавливается, прерывания не допускаются, но когда это ясно, прерывания разрешаются. Другой флаг, называемый десятичным флагом, позволяет процессору следовать более сложному двоичному режиму для выполнения безупречных арифметических уравнений. Когда флаг устанавливается, он использует этот расширенный двоичный режим. Другой бит регистра - это бит флага прерывания, который устанавливается при выполнении команды Force Interrupt (BRK).

Флаг переполнения устанавливается во время арифметических операций, если операция дает недопустимый результат. Отрицательный флаг устанавливается, если в результате самой последней операции было установлено значение 1. Последний флаг, называемый битом 5, является безымянным и всегда устанавливается на 1. Программисты, по сути, не используют этот конкретный бит.

Регистр FLAGS является одним примером регистра состояния, который использовался в некоторых центральных процессорах и содержал текущие состояния процессора. Он имел ширину 16 битов, за ним следовали EFLAGS и RFLAGS, 32-битный регистр и 64-битный регистр соответственно. Регистр FLAGS, однако, имел некоторые флаги, которые отличались от исходного 8-битного регистра, включая флаг четности, вспомогательный флаг и флаг прерывания.