ARM-Program Status Register(PSR)

eunsukim·2024년 10월 21일

Program Status Register


PSR은 ARM 프로세서에서 현재 연산 상태와 프로세서의 상태를 추적하는 레지스터이다. 다양한 플래그 및 제어 비트로 구성된다.

구성 요소

  1. Condition Code Flags(조건 코드 플래그)
  • N: alu의 연산 결과가 음수일 때 1.

  • Z: alu의 연산 결과가 0일 때 1.

  • C: alu의 연산에서 캐리(자리올림)이 발생한 경우에 1.

    • 논리 연산: 시프트 연산 후 캐리 비트에 1이 남아있을 때 설정.
    • 산술 연산: 결과가 32비트를 초과했을 때 설정. 즉, 자리올림이 발생한 경우.
  • V: alu의 연산에서 오버플로우가 발생한 경우에 1.

    Example:

    • 0 - 1 = -1: NZCV = 1000. (음수)
    • -1 + 1 = 0: NZCV = 0110. (0, 자리 올림 발생)
      (-1111 + 0001 = 1 0000)
    • (2311)+1=231(2^{31}-1) + 1 = -2^{31}: NZCV = 1001.(음수 및 오버플로우 발생)
  1. Interrupt Disable Bits(인터럽트 비활성 비트)
  • I: 비트가 1이면 IRQ(일반 인터럽트)가 비활성.
  • F: 비트가 1이면 FIQ(고속 인터럽트)가 비활성.

특정 상황에서 인터럽트를 비활성화화여, 프로그램 실행 중에 특정 구간에서 인터럽트가 발생하지 않도록 보장함.

3.T Bit(Thumb 상태 전환 비트)

  • T = 0 일 때 ARM 상태로, 32비트 명령어 사용.
  • T = 1 일 때 Thumb 상태로, 16비트 명령어 사용.

Thumb 상태는 ARM 아키텍처의 일부로, 동일한 작업을 수행하면서 더 많은 명령어 집합을 사용함.
(코드의 밀도 상승)

4.Mode Bits(모드 비트)

  • Mode Bits는 현재 프로세서의 실행 모드를 정의한다. ARM은 여러 실행 모드를 지원하며, 각 모드에 따라 레지스터 접근 방식과 특성이 다르다.
    User Mode, Supervisor Mode, FIQ Mode 등등

0개의 댓글