A small, high-speed computer circuit that holds values of internal operations, such as the address of the instruction being executed and the data being processed. When a program is debugged, register contents may be analyzed to determine the computer's status at the time of failure.
In microcomputer assembly language programming, programmers look at the contents of registers routinely. Assembly languages in larger computers are often at a higher level.
| 1. | | register - One of a small number of high-speed memory locations in a
computer's CPU. Registers differ from ordinary
random-access memory in several respects:
There are only a small number of registers (the "register
set"), typically 32 in a modern processor though some,
e.g. SPARC, have as many as 144. A register may be directly
addressed with a few bits. In contrast, there are usually
millions of words of main memory (RAM), requiring at least
twenty bits to specify a memory location. Main memory
locations are often specified indirectly, using an indirect addressing mode where the actual memory address is held in a
register.
Registers are fast; typically, two registers can be read and a
third written -- all in a single cycle. Memory is slower; a
single access can require several cycles.
The limited size and high speed of the register set makes it
one of the critical resources in most computer architectures.
Register allocation, typically one phase of the back-end,
controls the use of registers by a compiled program.
See also accumulator, FUBAR, orthogonal, register dancing, register allocation, register spilling. | |
| 2. | | register - An addressable location in a memory-mapped peripheral
device. E.g. the transmit data register in a UART. | |