Alpha Instruction Set (Brief)
Data Types
| Byte | 8 bits |
| Word | 16 bits |
| Longword | 32 bits |
| Quadword | 64 bits |
Load Instructions
| lda | Load Address |
| ldb | Load Byte |
| ldbu | Load Byte Unsigned |
| ldw | Load Word |
| ldwu | Load Word Unsigned |
| ldl | Load Sign Extended Longword |
| ldl_l | Load Sign Extended Longword Locked |
| ldq | Load Quadword |
| ldq_l | Load Quadword Locked |
| ldq_u | Load Quadword Unaligned |
| uldw | Unaligned Load Word |
| uldwu | Unaligned Load Word Unsigned |
| uldl | Unaligned Load Longword |
| uldq | Unaligned Load Quadword |
| ldah | Load Address High |
| ldgb | Load Global Pointer |
| ldil | Load Immediate Longword |
| ldiq | Load Immediate Quadword |
Store Instructions
| stb | Store Byte |
| stw | Store Word |
| stl | Store Longword |
| stl_c | Store Longword Conditional |
| stq | Store Quadword |
| stq_c | Store Quadword Conditional |
| stq_u | Store Quadword Unaligned |
| ustw | Unaligned Store Word |
| ustl | Unaligned Store Longword |
| ustq | Unaligned Store Quadword |
Arithmetic Instructions
| clr | Clear |
| absl | Absolute Value Longword |
| absq | Absolute Value Quadword |
| negl | Negate Longword (without overflow) |
| neglv | Negate Longword (with overflow) |
| negq | Negate Quadword (without overflow) |
| negqv | Negate Quadword (with overflow) |
| sextl | Sign-Extension Longword |
| addl | Add Longword (without overflow) |
| addlv | Add Longword (with overflow) |
| addq | Add Quadword (without overflow) |
| addqv | Add Quadword (with overflow) |
| s4addl | Scaled Longword Add by 4 |
| s4addq | Scaled Quadword Add by 4 |
| s8addl | Scaled Longword Add by 8 |
| s8addq | Scaled Quadword Add by 8 |
| mull | Multiply Longword (without overflow) |
| mullv | Multiply Longword (with overflow) |
| mulq | Multiply Quadword (without overflow) |
| mulqv | Multiply Quadword (with overflow) |
| subl | Subtract Longword (without overflow) |
| sublv | Subtract Longword (with overflow) |
| subq | Subtract Quadword (without overflow) |
| subqv | Subtract Quadword (with overflow) |
| s4subl | Scaled Longword Subtract by 4 |
| s4subq | Scaled Quadword Subtract by 4 |
| s8subl | Scaled Longword Subtract by 8 |
| s8subq | Scaled Quadword Subtract by 8 |
| umulh | Unsigned Quadword Multiply High |
| divl | Divide Longword (without overflow) |
| divlv | Divide Longword (with overflow) |
| divq | Divide Quadword (without overflow) |
| divqv | Divide Quadword (with overflow) |
| reml | Remainder Longword (without overflow) |
| remlv | Remainder Longword (with overflow) |
| remq | Remainder Quadword (without overflow) |
| remqv | Remainder Quadword (with overflow) |
Logical Instructions
| not | Bitwise Not |
| and | Bitwise And |
| or,bis | Bitwise Or |
| xor | Bitwise Exor |
| andn,bic | Bitwise And Not |
| ornot | Bitwise Or Not |
| xornot,eqv | Bitwise Exor Not |
Shift Instructions
| sll | Shift Left Logical |
| slr | Shift Right Logical |
| sra | Shift Right Arithmetical |
Relational Instructions
| cmpeq | Compare Signed Quadword Equal |
| cmplt | Compare Signed Quadword Less Than |
| cmple | Compare Signed Quadword Less Than or Equal |
| cmpult | Compare Unsigned Quadword Less Than |
| cmpule | Compare Unsigned Quadword Less Than or Equal |
Move Instructions
| mov | Move |
| cmoveq | Move if Equal to Zero |
| cmovne | Move if Not Equal to Zero |
| cmovlt | Move if Less Than Zero |
| cmovle | Move if Less Than or Equal to Zero |
| cmovgt | Move if Greater Than Zero |
| cmovge | Move if Greater Than or Equal to Zero |
| cmovlbc | Move if Low Bit is Clear |
| cmovlbs | Move if Low Bit is Set |
Branch and Jump Instructions
| beq | Branch if Equal to Zero |
| bne | Branch if Not Equal to Zero |
| blt | Branch if Less Than Zero |
| ble | Branch if Less Than or Equal to Zero |
| bgt | Branch if Greater Than Zero |
| bge | Branch if Greater Than or Equal to Zero |
| blbc | Branch if Low Bit is Clear |
| blbs | Branch if Low Bit is Set |
| br | Branch Always |
| bsr | Branch to Subroutine |
| jmp | Jump |
| jsr | Jump to Subroutine |
| ret | Return from Subroutine |
| jsr_coroutine | Jump to Subroutine Return |
Byte Manipulation Instructions
| cmpge | Compare Byte |
| extbl | Extract Byte Low |
| extwl | Extract Word Low |
| extll | Extract Longword Low |
| extql | Extract Quadword Low |
| extwh | Extract Word High |
| extlh | Extract Longword High |
| extqh | Extract Quadword High |
| insbl | Insert Byte Low |
| inswl | Insert Word Low |
| insll | Insert Longword Low |
| insql | Insert Quadword Low |
| inswh | Insert Word High |
| inslh | Insert Longword High |
| insqh | Insert Quadword High |
| mskbl | Mask Byte Low |
| mskwl | Mask Word Low |
| mskll | Mask Longword Low |
| mskql | Mask Quadword Low |
| mskwh | Mask Word High |
| msklh | Mask Longword High |
| mskqh | Mask Quadword High |
| zap | Zero Bytes |
| zapnot | Zero Bytes Not |
Special Purpose Instructions
| call_pal | Call Privileged Architecture Library |
| fetch | Prefetch Data |
| fetch_m | Prefetch Data, Modify Intent |
| rpcc | Read Process Cycle Counter |
| nop | No Operation |
| unop | Universal No Operation |
| trapb | Trap Barrier |
| excb | Exception Barrier |
| mb | Memory Barrier |