Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
DEC Alpha
(section)
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.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)