0% found this document useful (0 votes)
52 views11 pages

Processor Register - Wikipedia

A processor register is a fast-access storage location within a computer's processor, used for operations and data manipulation. Registers are categorized into various types, including user-accessible, control, data, address, and special-purpose registers, each serving specific functions in processing tasks. The efficiency of a program can be significantly improved by utilizing registers effectively, as they are at the top of the memory hierarchy and provide the fastest data access.

Uploaded by

Minh Pham
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views11 pages

Processor Register - Wikipedia

A processor register is a fast-access storage location within a computer's processor, used for operations and data manipulation. Registers are categorized into various types, including user-accessible, control, data, address, and special-purpose registers, each serving specific functions in processing tasks. The efficiency of a program can be significantly improved by utilizing registers effectively, as they are at the top of the memory hierarchy and provide the fastest data access.

Uploaded by

Minh Pham
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Processor register

(Redirected from General-purpose register)


A processor register is a quickly
accessible location available to a computer's
processor.[1] Registers usually consist of a
small amount of fast storage, although
some registers have specific hardware
functions, and may be read-only or write- A register-transfer level (RTL) description of an 8-bit register with
detailed implementation, showing how 8 bits of data can be stored
only. In computer architecture, registers are
by using flip-flops.
typically addressed by mechanisms other
than main memory, but may in some cases
be assigned a memory address e.g. DEC PDP-10, ICT 1900.[2]

Almost all computers, whether load/store architecture or not, load items of data from a larger memory
into registers where they are used for arithmetic operations, bitwise operations, and other operations,
and are manipulated or tested by machine instructions. Manipulated items are then often stored back to
main memory, either by the same instruction or by a subsequent one. Modern processors use either
static or dynamic random-access memory (RAM) as main memory, with the latter usually accessed via
one or more cache levels.

Processor registers are normally at the top of the memory hierarchy, and provide the fastest way to
access data. The term normally refers only to the group of registers that are directly encoded as part of an
instruction, as defined by the instruction set. However, modern high-performance CPUs often have
duplicates of these "architectural registers" in order to improve performance via register renaming,
allowing parallel and speculative execution. Modern x86 design acquired these techniques around 1995
with the releases of Pentium Pro, Cyrix 6x86, Nx586, and AMD K5.

When a computer program accesses the same data repeatedly, this is called locality of reference. Holding
frequently used values in registers can be critical to a program's performance. Register allocation is
performed either by a compiler in the code generation phase, or manually by an assembly language
programmer.

Size
Registers are normally measured by the number of bits they can hold, for example, an 8-bit register, 32-
bit register, 64-bit register, 128-bit register, or more. In some instruction sets, the registers can operate
in various modes, breaking down their storage memory into smaller parts (32-bit into four 8-bit ones, for
instance) to which multiple data (vector, or one-dimensional array of data) can be loaded and operated
upon at the same time. Typically it is implemented by adding extra registers that map their memory into
a larger register. Processors that have the ability to execute single instructions on multiple data are called
vector processors.
Types
A processor often contains several kinds of registers, which can be classified according to the types of
values they can store or the instructions that operate on them:

User-accessible registers can be read or written by machine instructions. The most common
division of user-accessible registers is a division into data registers and address registers.
Control registers are used to set the behaviour of system components such as the CPU.
Data registers can hold numeric data values such as integers and, in some architectures,
floating-point numbers, as well as characters, small bit arrays and other data. In some older
architectures, such as the IBM 704, the IBM 709 and successors, the PDP-1, the PDP-4/PDP-
7/PDP-9/PDP-15, the PDP-5/PDP-8, and the HP 2100, a special data register known as the
accumulator is used implicitly for many operations.
Address registers hold addresses and are used by instructions that indirectly access primary
memory.
Some processors contain registers that may only be used to hold an address or only to hold
numeric values (in some cases used as an index register whose value is added as an offset
from some address); others allow registers to hold either kind of quantity. A wide variety of
possible addressing modes, used to specify the effective address of an operand, exist.
The stack and frame pointers are used to manage the run-time stack. Rarely, other data
stacks are addressed by dedicated address registers (see stack machine).
General-purpose registers (GPRs) can store both data and addresses, i.e., they are combined
data/address registers; in some architectures, the register file is unified so that the GPRs can
store floating-point numbers as well.
Status registers hold truth values often used to determine whether some instruction should or
should not be executed.
Floating-point registers (FPRs) store floating-point numbers in many architectures.
Constant registers hold read-only values such as zero, one, or pi.
Vector registers hold data for vector processing done by SIMD instructions (Single Instruction,
Multiple Data).
Special-purpose registers (SPRs) hold some elements of the program state; they usually
include the program counter, also called the instruction pointer, and the status register; the
program counter and status register might be combined in a program status word (PSW) register.
The aforementioned stack pointer is sometimes also included in this group. Embedded
microprocessors, such as microcontrollers, can also have special function registers
corresponding to specialized hardware elements.
Model-specific registers (also called machine-specific registers) store data and settings related
to the processor itself. Because their meanings are attached to the design of a specific processor,
they are not expected to remain standard between processor generations.
Memory type range registers (MTRRs)
Internal registers are not accessible by instructions and are used internally for processor
operations.
The instruction register holds the instruction currently being executed.
Registers related to fetching information from RAM, a collection of storage registers located on
separate chips from the CPU:
Memory buffer register (MBR), also known as memory data register (MDR)
Memory address register (MAR)
Architectural registers are the registers visible to software and are defined by an architecture. They
may not correspond to the physical hardware if register renaming is being performed by the
underlying hardware.
Hardware registers are similar, but occur outside CPUs.
In some architectures (such as SPARC and MIPS), the first or last register in the integer register file is a
pseudo-register in that it is hardwired to always return zero when read (mostly to simplify indexing
modes), and it cannot be overwritten. In Alpha, this is also done for the floating-point register file. As a
result of this, register files are commonly quoted as having one register more than how many of them are
actually usable; for example, 32 registers are quoted when only 31 of them fit within the above definition
of a register.

Examples
The following table shows the number of registers in several mainstream CPU architectures. Note that in
x86-compatible processors, the stack pointer (ESP) is counted as an integer register, even though there
are a limited number of instructions that may be used to operate on its contents. Similar caveats apply to
most architectures.

Although all of the below-listed architectures are different, almost all are in a basic arrangement known
as the von Neumann architecture, first proposed by the Hungarian-American mathematician John von
Neumann. It is also noteworthy that the number of registers on GPUs is much higher than that on CPUs.
Architecture GPRs/data+address registers FP registers Notes
All data manipulation instructions
work solely within registers, and data
AT&T Hobbit 0 stack of 7
must be moved into a register before
processing.

8 scalar, 8 vector Scalar data registers can be integer


or floating-point; also 64 scalar
Cray-1[3] 8 scalar data, 8 address (64 elements) scratch-pad T registers and 64
address scratch-pad B registers

4004[4] 1 accumulator, 16 others 0

The A register is an accumulator to


which all arithmetic is done; the H
and L registers can be used in
combination as an address register;
all registers can be used as operands
8008[5] 1 accumulator, 6 others 0
in
load/store/move/increment/decrement
instructions and as the other operand
in arithmetic instructions. There is no
floating-point unit (FPU) available.
The A register is an accumulator to
which all arithmetic is done; the
register pairs B+C, D+E, and H+L can
be used as address registers in some
instructions; all registers can be used
as operands in
load/store/move/increment/decrement
1 accumulator, 1 stack pointer, 6 instructions and as the other operand
8080[6] others
0
in arithmetic instructions. Some
instructions only use H+L; another
instruction swaps H+L and D+E.
Floating-point processors intended
for the 8080 were Intel 8231, AMD
Am9511, and Intel 8232. They were
also readily usable with the Z80 and
similar processors.

iAPX432 0 stack of 6 Stack machine

The 8086/8088, 80186/80188, and


80286 processors, if provided an
8087, 80187 or 80287 co-processor
stack of 8 for floating-point operations, support
an 80-bit wide, 8 deep register stack
16-bit x86[7] 8 (if FP present) with some instructions able to use
registers relative to the top of the
stack as operands; without a co-
processor, no floating-point registers
are supported.
The 80386 processor requires an
80387 for floating-point operations,
stack of 8 (if FP present), later processors had built-in floating-
point, with both having an 80-bit wide,
8 (if SSE/MMX 8 deep register stack with some
IA-32[8] 8
instructions able to use registers
present)
relative to the top of the stack as
operands. The Pentium III and later
had the SSE with additional 128-bit
XMM registers.

FP registers are 128-bit XMM


16 or 32 registers, later extended to 256-bit
x86-64[8][9] 16 (if AVX-512 available) YMM registers with AVX/AVX2 and
512-bit ZMM0–ZMM31 registers with
AVX-512.[10]

Fairchild F8[11] 1 accumulator, 64 scratchpad — Instructions can directly reference the


registers, 1 indirect scratchpad first 16 scratchpad registers and can
Architecture GPRs/data+address registers FP registers Notes
register (ISAR) access all scratchpad registers
indirectly through the ISAR[12]
Geode GX/Media GX/4x86/5x86 is
the emulation of 486/Pentium
compatible processor made by
Cyrix/National Semiconductor. Like
Transmeta, the processor had a
translation layer that translated x86
code to native code and executed it.
It does not support 128-bit SSE
registers, just the 80387 stack of
Geode GX 1 data, 1 address 8 eight 80-bit floating-point registers,
and partially supports 3DNow! from
AMD. The native processor only
contains 1 data and 1 address
register for all purposes and it is
translated into 4 paths of 32-bit
naming registers r1 (base), r2 (data),
r3 (back pointer), and r4 (stack
pointer) within scratchpad SRAM for
integer operations.

A 16-bit processor from the


Taiwanese company Sunplus
Technology, notably used in VTech's
Sunplus μ'nSP 8 (sp, r1-r4, bp, sr, pc) 0 [Link] line of educational video
game consoles, in addition to many
plug-in TV games and off-brand
consoles starting from the mid-2000s.

A 32-bit stack machine processor


developed by VM Labs and
specialized for multimedia. It can be
found on the company's own Nuon
DVD player console line and the
Game Wave Family Entertainment
System from ZaPit games. The
design was heavily influenced by
VM Labs Nuon 0 1
Intel's MMX technology; it contained
a 128-byte unified stack cache for
both vector and scalar instructions.
The unified cache can be divided as
eight 128-bit vector registers or thirty-
two 32-bit SIMD scalar registers
through bank renaming; there is no
integer register in this architecture.
Nios II is based on the MIPS IV
instruction set and has 31 32-bit
Nios II[13][14] 31 8 GPRs, with register 0 being
hardwired to zero, and eight 64-bit
floating-point registers

Motorola
2 data, 1 index, 1 stack 0
6800[15]

Address register 8 (a7) is the stack


8 pointer. 68000, 68010, 68012, 68020,
8 data (d0–d7), 8 address (a0–
Motorola 68k[16] a7) (if FP present) and 68030 require an FPU for
floating-point; 68040 had FPU built in.
FP registers are 80-bit.

SH 16-bit 16 6
Architecture GPRs/data+address registers FP registers Notes

The Emotion Engine's main core


(VU0) is a heavily modified DSP
general core intended for general
background tasks and it contains one
64-bit accumulator, two general data
registers, and one 32-bit program
counter. A modified MIPS III
executable core (VU1) is for game
data and protocol control, and it
contains thirty-two 32-bit general-
purpose registers for integer
32 SIMD (integrated in computation and thirty-two 128-bit
UV1) SIMD registers for storing SIMD
instructions, streaming data value
+ 2 × 32 Vector
and some integer calculation value,
Emotion Engine 3(VU0)+ 32(VU1) (dedicated vector co- and one accumulator register for
processor located connecting general floating-point
computation to the vector register file
nearby its GPU) on the co-processor. The coprocessor
is built via a 32-entry 128-bit vector
register file (can only store vector
values that pass from the
accumulator in the CPU) and no
integer registers are built in. Both the
vector co-processor (VPU 0/1) and
the Emotion Engine's entire main
processor module (VU0 + VU1 +
VPU0 + VPU1) are built based on a
modified MIPS instructions set. The
accumulator in this case is not
general-purpose but control status.

Earlier generations allowed up to


127/63 registers per thread
(Tesla/Fermi). The more registers are
configured per thread, the fewer
threads can run at the same time.
CUDA[17] configurable, up to 255 per thread
Registers are 32 bits wide; double-
precision floating-point numbers and
64-bit pointers therefore require two
registers. It additionally has up to 8
predicate registers per thread.[18]
8 'A' registers, A0–A7, hold 18-bit
addresses; 8 'B' registers, B0–B7,
hold 18-bit integer values (with B0
permanently set to zero); 8 'X'
registers, X0–X7, hold 60 bits of
integer or floating-point data. Seven
of the eight 18-bit A registers were
CDC 6000 coupled to their corresponding X
16 8 registers: setting any of the A1–A5
series[19]
registers to a value caused a memory
load of the contents of that address
into the corresponding X register.
Likewise, setting an address into
registers A6 or A7 caused a memory
store into that location in memory
from X6 or X7. (Registers A0 and X0
were not coupled like this).

System/360,[20] 16 4 (if FP present); FP was optional in System/360, and


System/370,[21] always present in S/370 and later. In
16 in G5 and later processors with the Vector Facility,
System/390,
z/Architecture[22]
S/390 models and there are 16 vector registers
z/Architecture containing a machine-dependent
number of 32-bit elements.[23] Some
registers are assigned a fixed
purpose by calling conventions; for
example, register 14 is used for
subroutine return addresses and, for
ELF ABIs, register 15 is used as a
Architecture GPRs/data+address registers FP registers Notes
stack pointer. The S/390 G5
processor increased the number of
floating-point registers to 16.[24]
An instruction set designed by
MMIX[25] 256 256 Donald Knuth in the late 1990s for
pedagogical purposes.

8
NS320xx[26] 8 (if FP present)

A 32/40-bit stack machine-based


network processor with a modified
Xelerated X10 1 32
MIPS instruction set and a 128-bit
floating-point unit.

An eight-core 8/16-bit sliced stack


machine controller with a simple logic
circuit inside, it has 8 cog counters
(cores), each containing three 8/16
bit special control registers with 32 bit
x 512 stack RAM. However, it does
not contain any general register for
integer purposes. Unlike most
Parallax
0 2 shadow register files in modern
Propeller
processors and multi-core systems,
all of the stack RAM in cog can be
accessed in instruction level, which
allows all of these cogs to act as a
single general-purpose core if
necessary. Floating-point unit is
external and it contains two 80-bit
vector registers.
And 64 1-bit predicate registers and 8
Itanium[27] 128 128 branch registers. The FP registers
are 82-bit.

Global register 0 is hardwired to 0.


SPARC[28] 31 32
Uses register windows.

Also included are a link register, a


IBM POWER 32 32 count register, and a multiply quotient
(MQ) register.
Also included are a link register and a
PowerPC/Power count register. Processors supporting
32 32
ISA[29] the Vector facility also have 32 128-
bit vector registers.

Also included are a stack pointer and


a frame pointer. Additional registers
Blackfin[30] 8 data, 2 accumulator, 6 address 0 are used to implement zero-overhead
loops and circular buffer DAGs (data
address generators).
128 general purpose registers, which
IBM Cell SPE 128 can hold integer, address, or floating-
point values[31]

PDP-10 16 All of the registers may be used


generally (integer, float, stack pointer,
jump, indexing, etc.). Every 36-bit
memory (or register) word can also
be manipulated as a half-word, which
can be considered an (18-bit)
address. Other word interpretations
are used by certain instructions. In
the original PDP-10 processors,
these 16 GPRs also corresponded to
main (i.e. core) memory locations 0–
15; a hardware option called "fast
Architecture GPRs/data+address registers FP registers Notes
memory" implemented the registers
as separate ICs, and references to
memory locations 0–15 referred to
the IC registers. Later models
implemented the registers as "fast
memory" and continued to make
memory locations 0–15 refer to them.
Movement instructions take (register,
memory) operands: MOVE 1,2 is
register-register, and MOVE 1,1000
is memory-to-register.

6 R7 is the program counter. Any


register can be a stack pointer but R6
PDP-11 7 (if FPP present) is used for hardware interrupts and
traps.
The general purpose registers are
used for floating-point values as well.
Three of the registers have special
VAX[32] 16 uses: R12 (Argument Pointer), R13
(Frame Pointer), and R14 (Stack
Pointer), while R15 refers to the
Program Counter.

Registers R31 (integer) and F31


Alpha[33] 31 31
(floating-point) are hardwired to zero.

6502's content A (Accumulator)


register for main purpose data store
and memory address (8-bit data/16-
6502 1 data, 2 index 0 bit address), X and Y are indirect and
direct index registers (respectively)
and the SP registers are specific
index only.
65c816 is the 16-bit successor of the
6502. X, Y, and D (Direct Page
register) are condition registers and
SP register are specific index only.
Main accumulator extended to 16-bit
W65C816S 1 0
(C)[34] while keeping 8-bit (A) for
compatibility and main registers can
now address up to 24-bit (16-bit wide
data instruction/24-bit memory
address).

Media-embedded processor was a


32-bit processor developed by
Toshiba with a modded 8080
instruction set. Only the A, B, C, and
MeP 4 8 D registers are available through all
modes (8/16/32-bit). It is incompatible
with x86; however, it contains an 80-
bit floating-point unit that is x87-
compatible.
PIC
1 0
microcontroller

AVR
32 0
microcontroller

r15 is the program counter, and not


usable as a general purpose register;
r13 is the stack pointer; r8–r13 can
ARM 32-bit Varies be switched out for others (banked)
(ARM/A32, 14 (up to 32) on a processor mode switch. Older
Thumb-2/T32) versions had 26-bit addressing,[35]
and used upper bits of the program
counter (r15) for status flags, making
that register 32-bit.
Architecture GPRs/data+address registers FP registers Notes

Version 1 of Thumb, which only


ARM 32-bit supported access to registers r0
8 16
(Thumb)
through r7[36]

ARM 64-bit Register r31 is the stack pointer or


31 32 hardwired to 0, depending on the
(A64) [37] context.

MIPS[38] 31 32 Integer register 0 is hardwired to 0.

Integer register 0 is hardwired to 0.


[39] The RV32E variant, intended for
RISC-V 31 32
systems with very limited resources,
has 15 integer registers.
Each instruction controls whether
registers are interpreted as integers
or single precision floating point.
Epiphany 64 (per core)[40] Architecture is scalable to 4096 cores
with 16 and 64 core implementations
currently available.

Usage
The number of registers available on a processor and the operations that can be performed using those
registers has a significant impact on the efficiency of code generated by optimizing compilers. The
Strahler number of an expression tree gives the minimum number of registers required to evaluate that
expression tree.

See also
CPU cache
Quantum register
Register allocation
Register file
Shift register

References
1. "What is a processor register?" ([Link]
Educative: Interactive Courses for Software Developers. Retrieved 2022-08-12.
2. "A Survey of Techniques for Designing and Managing CPU Register File" ([Link]
net/publication/303802254).
3. "Cray-1 Computer System Hardware Reference Manual" ([Link]
240004C_CRAY-1_Hardware_Reference_Nov77.pdf) (PDF). Cray Research. November 1977.
Archived ([Link]
40004C_CRAY-1_Hardware_Reference_Nov77.pdf) (PDF) from the original on 2021-11-07.
Retrieved 2022-12-23.
4. "MCS-4 Micro Computer Set Users Manual" ([Link]
MCS4/MCS-4_UsersManual_Feb73.pdf) (PDF). Intel. February 1973. Archived ([Link]
rg/web/20050224073529/[Link] (PDF)
from the original on 2005-02-24.
5. "8008 8 Bit Parallel Central Processor Unit Users Manual" ([Link]
components/intel/MCS8/Intel_8008_8-Bit_Parallel_Central_Processing_Unit_Rev4_Nov73.pdf)
(PDF). Intel. November 1973. Archived ([Link]
[Link]/pdf/intel/MCS8/8008usersManualRev4_Nov73.pdf) (PDF) from the original on 2007-10-04.
Retrieved January 23, 2014.
6. "Intel 8080 Microcomputer Systems User's Manual" ([Link]
ntel/MCS80/98-153B_Intel_8080_Microcomputer_Systems_Users_Manual_197509.pdf) (PDF). Intel.
September 1975. Archived ([Link]
l/MCS80/98-153B_Intel_8080_Microcomputer_Systems_Users_Manual_197509.pdf) (PDF) from the
original on 2010-12-06. Retrieved January 23, 2014.
7. "80286 and 80287 Programmer's Reference Manual" ([Link]
s/intel/80286/210498-005_80286_and_80287_Programmers_Reference_Manual_1987.pdf) (PDF).
Intel. 1987. Archived ([Link]
s/pdf/intel/80286/210498-005_80286_and_80287_Programmers_Reference_Manual_1987.pdf)
(PDF) from the original on 2015-07-23.
8. "Intel 64 and IA-32 Architectures Software Developer Manuals" ([Link]
s/en/processors/[Link]). Intel. 4 December 2019.
9. "AMD64 Architecture Programmer's Manual Volume 1: Application Programming" ([Link]
om/content/dam/amd/en/documents/processor-tech-docs/programmer-references/[Link]) (PDF).
AMD. October 2013.
10. "Intel Architecture Instruction Set Extensions and Future Features Programming Reference" ([Link]
[Link]/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programmi
[Link]) (PDF). Intel. January 2018.
11. F8, Preliminary Microprocessor User's Manual ([Link]
UM_Jan75.pdf) (PDF). Fairchild. January 1975.
12. F8 Guide to Programming ([Link]
ming_1977.pdf) (PDF). Fairchild MOS Microcomputer Division. 1977.
13. "Nios II Classic Processor Reference Guide" ([Link]
n2cpu_nii5v1.pdf) (PDF). Altera. April 2, 2015.
14. "Nios II Gen2 Processor Reference Guide" ([Link]
n_US/pdfs/literature/hb/nios2/[Link]) (PDF). Altera. April 2, 2015.
15. "M6800 Programming Reference Manual" ([Link]
rola_M6800_Programming_Reference_Manual_M68PRM(D)_Nov76.pdf) (PDF). Motorola.
November 1976. Archived ([Link]
orola/6800/Motorola_M6800_Programming_Reference_Manual_M68PRM(D)_Nov76.pdf) (PDF)
from the original on 2011-10-14. Retrieved May 18, 2015.
16. "Motorola M68000 Family Programmer's Reference Manual" ([Link]
-manual/[Link]) (PDF). Motorola. 1992. Retrieved November 10, 2024.
17. "CUDA C Programming Guide" ([Link]
compute-capabilities). Nvidia. 2019. Retrieved Jan 9, 2020.
18. Jia, Zhe; Maggioni, Marco; Staiger, Benjamin; Scarpazza, Daniele P. (2018). "Dissecting the NVIDIA
Volta GPU Architecture via Microbenchmarking". arXiv:1804.06826 ([Link]
[[Link] ([Link]
19. Control Data 6000 Series Computer Systems, Reference Manual ([Link]
[Link]/pdf/cdc/Tom_Hunter_Scans/6000_Series_Computer_Systems_RefMan_Jul65.pdf) (PDF).
Control Data Corporation. July 1965.
20. IBM System/360 Principles of Operation ([Link]
2-6821-0_360PrincOps.pdf) (PDF). IBM.
21. IBM System/370, Principles of Operation ([Link]
Ops/GA22-7000-4_370_Principles_Of_Operation_Sep75.pdf) (PDF). IBM. September 1, 1975.
22. z/Architecture, Principles of Operation ([Link]
[Link]/[Link]) (PDF) (Seventh ed.). IBM. 2008.
23. "IBM Enterprise Systems Architecture/370 and System/370 - Vector Operations" ([Link]
pdf/ibm/370/vectorFacility/SA22-7125-3_Vector_Operations_Aug88.pdf) (PDF). IBM. SA22-7125-3.
Retrieved May 11, 2020.
24. "IBM S/390 G5 Microprocessor" ([Link]
n/HC10.S5/[Link]) (PDF).
25. "MMIX Home Page" ([Link]
26. "Series 32000 Databook" ([Link]
2000_Databook.pdf) (PDF). National Semiconductor. Archived ([Link]
5004028/[Link]
df) (PDF) from the original on 2017-11-25.
27. Intel Itanium Architecture, Software Developer's Manual, Volume 3: Intel Itanium Instruction Set
Reference ([Link]
[Link]) (PDF). Intel. May 2010.
28. Weaver, David L.; Germond, Tom (eds.). The SPARC Architecture Manual, Version 9 ([Link]
[Link]/~novak/[Link]) (PDF). Santa Clara, California: SPARC International, Inc.
29. Power ISA Version 3.1B ([Link] (PDF).
OpenPOWER Foundation. September 14, 2021.
30. Blackfin Processor, Programming Reference, Revision 2.2 ([Link]
cumentation/processor-manuals/Blackfin_pgr_rev2.[Link]) (PDF). Analog Devices. February 2013.
31. "Synergistic Processor Unit Instruction Set Architecture Version 1.2" ([Link]
echlib/[Link]/techdocs/76CA6C7304210F3987257060006F2C44/$file/SPU_ISA_v1.2_27Jan200
7_pub.pdf) (PDF). IBM. January 27, 2007.
32. Leonard, Timothy E., ed. (1987). VAX Architecture, Reference Manual ([Link]
com/pdf/dec/vax/archSpec/EY-3459E-DP_VAX_Architecture_Reference_Manual_1987.pdf) (PDF).
DEC books.
33. Alpha Architecture Reference Manual ([Link] (PDF)
(Fourth ed.). Compaq Computer Corporation. January 2002.
34. "Learning 65816 Assembly" ([Link] Super
Famicom Development Wiki. Retrieved 14 November 2019.
35. "Procedure Call Standard for the ARM Architecture" ([Link]
c.ihi0042d/IHI0042D_aapcs.pdf) (PDF). ARM Holdings. 30 November 2013. Retrieved 27 May 2013.
36. "2.6.2. The Thumb-state register set" ([Link]
odel/registers/the-thumb-state-register-set). ARM7TDMI Technical Reference Manual. ARM
Holdings.
37. Arm A64 Instruction Set Architecture, Armv8, for Armv8-A architecture profile ([Link]
[Link]/~cs452/docs/rpi4b/ISA_A64_xml_v88A-2021-12_OPT.pdf) (PDF). Arm. 2021.
38. MIPS64 Architecture For Programmers, Volume II: The MIPS64 Instruction Set ([Link]
du/ee4720/[Link]) (PDF). RISC-V Foundation. March 12, 2001. Retrieved October 6, 2024.
39. Waterman, Andrew; Asanovi, Krste, eds. (May 2017). The RISC-V, Instruction Set Manual, Volume I:
User-Level ISA, Document Version 2.2 ([Link]
pdf) (PDF). RISC-V Foundation.
40. "Epiphany Architecture Reference" ([Link] (PDF).

Retrieved from "[Link]

You might also like