|For more, see:||SPARC at Enchanted Learning|
The processor state register (PSR) is a one-word register used to keep track of various aspects of the state of the CPU that are not stored elsewhere. It is composed of a number of bit fields, which are simply located together for convenience in a single 32-bit register.
The following table describes briefly the various bit fields comprising the PSR.
|Bit numbers||Field name||Description|
|23:20||icc||Integer condition codes: one bit each for N, Z, V, and C (negative, zero, overflow, and carry)|
|12||EF||Set if a floating-point coprocessor is available|
|11:8||PIL||Processor interrupt level|
|7||S||Set if the processor is in supervisor mode; clear if it is in user mode|
|6||PS||Value of S bit when the most recent trap occurred|
|5||ET||Set if traps are enabled (which is when the machine is not currently in a trap)|
|4:0||CWP||Current window pointer. Keeps track of which "register set" (output, local, and input registers) is currently in use. The save instruction decrements CWP, and the restore instruction increments CWP.|
The most important bits in the PSR are the condition codes N, Z, V, and C.
The bits N, Z, V, and C are set and cleared as side-effects of various instructions. Your program can test a condition code bit and conditionally branch to another instruction only if that bit is 0 or only if that bit is 1. This is the assembly-language version of the if-then statement.
The carry bit C can also be used in implementing addition and subtraction of integers longer than 32 bits.
Copyright 1998-1999 Enchanted Learning Software.
|Search the Enchanted Learning website for:|