Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
DEC Alpha
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Instruction formats== The Alpha ISA has a fixed instruction length of 32 bits. It has six instruction formats. {| class="wikitable" style="text-align:center;" |- | style="background-color:#DDDDFF"| '''Type''' | width="15px" | 31 | width="15px" | 30 | width="15px" | 29 | width="15px" | 28 | width="15px" | 27 | width="15px" | 26 | width="15px" | 25 | width="15px" | 24 | width="15px" | 23 | width="15px" | 22 | width="15px" | 21 | width="15px" | 20 | width="15px" | 19 | width="15px" | 18 | width="15px" | 17 | width="15px" | 16 | width="15px" | 15 | width="15px" | 14 | width="15px" | 13 | width="15px" | 12 | width="15px" | 11 | width="15px" | 10 | width="15px" | 9 | width="15px" | 8 | width="15px" | 7 | width="15px" | 6 | width="15px" | 5 | width="15px" | 4 | width="15px" | 3 | width="15px" | 2 | width="15px" | 1 | width="15px" | 0 |- | style="background-color:#EEEEFF"| Integer operate | colspan="6" | Opcode | colspan="5" | Ra | colspan="5" | Rb | colspan="3" | Unused | colspan="1" | 0 | colspan="7" | Function | colspan="5" | Rc |- | style="background-color:#EEEEFF"| Integer operate, literal | colspan="6" | Opcode | colspan="5" | Ra | colspan="8" | Literal | colspan="1" | 1 | colspan="7" | Function | colspan="5" | Rc |- | style="background-color:#EEEEFF"| Floating-point operate | colspan="6" | Opcode | colspan="5" | Ra | colspan="5" | Rb | colspan="11" | Function | colspan="5" | Rc |- | style="background-color:#EEEEFF"| Memory format | colspan="6" | Opcode | colspan="5" | Ra | colspan="5" | Rb | colspan="16" | Displacement |- | style="background-color:#EEEEFF"| Branch format | colspan="6" | Opcode | colspan="5" | Ra | colspan="21" | Displacement |- | style="background-color:#EEEEFF"| CALL_PAL format | colspan="6" | Opcode | colspan="26" | Function |- |} The integer operate format is used by integer instructions. It contains a 6-bit opcode field, followed by the Ra field, which specifies the register containing the first operand and the Rb field, specifies the register containing the second operand. Next is a 3-bit field which is unused and reserved. A 1-bit field contains a "0", which distinguished this format from the integer literal format. A 7-bit function field follows, which is used in conjunction with the opcode to specify an operation. The last field is the Rc field, which specifies the register which the result of a computation should be written to. The register fields are all 5 bits long, required to address 32 unique locations, the 32 integer registers. The integer literal format is used by integer instructions which use a literal as one of the operands. The format is the same as the integer operate format except for the replacement of the 5-bit Rb field and the 3 bits of unused space with an 8-bit literal field which is zero-extended to a 64-bit operand. The floating-point operate format is used by floating-point instructions. It is similar to the integer operate format, but has an 11-bit function field made possible by using the literal and unused bits which are reserved in integer operate format. The memory format is used mostly by load and store instructions. It has a 6-bit opcode field, a 5-bit Ra field, a 5-bit Rb field and a 16-bit displacement field. Branch instructions have a 6-bit opcode field, a 5-bit Ra field and a 21-bit displacement field. The Ra field specifies a register to be tested by a conditional branch instruction, and if the condition is met, the program counter is updated by adding the contents of the displacement field with the program counter. The displacement field contains a signed integer and if the value of the integer is positive, if the branch is taken then the program counter is incremented. If the value of the integer is negative, then program counter is decremented if the branch is taken. The range of a branch thus is Β±1 Mi instructions, or Β±4 MiB. The Alpha Architecture was designed with a large range as part of the architecture's forward-looking goal. The CALL_PAL format is used by the <code>CALL_PAL</code> instruction, which is used to call [[PALcode]] subroutines. The format retains the opcode field but replaces the others with a 26-bit function field, which contains an integer specifying a PAL subroutine.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
DEC Alpha
(section)
Add topic