Skip to content

Instruction Set Architecture

Legend: βœ… Completed 🟑 Partialy Complete 🚧 Work In Progress ❌ Not Started

Total Instructions: 130 (390 tasks) - Covered: 102/390 (26.15%)

OpcodeMnemonicImplTestDocs
0x00-0x0FSystem Instructions
0x00HALTβœ…βœ…βŒ
0x01NOPβœ…βœ…βŒ
0x02INT imm8🚧❌❌
0x03RETI🚧❌❌
0x08MOV reg1, reg2βœ…βœ…βŒ
0x10-0x1FLoad Word Instructions
0x10LDR reg, imm32βœ…βœ…βŒ
0x11LDR reg1, [reg2]βœ…βœ…βŒ
0x12LDR reg1, [reg2 + imm16]βœ…βœ…βŒ
0x13LDR reg1, [reg2 + reg3 * imm8]βœ…βœ…βŒ
0x14LDR reg1, [imm32]βœ…βœ…βŒ
0x20-0x2FLoad Half Instructions
0x20LDRH reg, imm32❌❌❌
0x21LDRH reg1, [reg2]❌❌❌
0x22LDRH reg1, [reg2 + imm32]❌❌❌
0x23LDRH reg1, [reg2 + imm32 * imm8]❌❌❌
0x24LDRH reg1, [imm32]❌❌❌
0x29LDRSH reg1, [reg2]❌❌❌
0x2ALDRSH reg1, [reg2 + imm32]❌❌❌
0x2BLDRSH reg1, [reg2 + imm32 * imm8]❌❌❌
0x2CLDRSH reg1, [imm32]❌❌❌
0x30-0x3FLoad Byte Instructions
0x30LDRB reg, imm32❌❌❌
0x31LDRB reg1, [reg2]❌❌❌
0x32LDRB reg1, [reg2 + imm32]❌❌❌
0x33LDRB reg1, [reg2 + imm32 * imm8]❌❌❌
0x34LDRB reg1, [imm32]❌❌❌
0x39LDRSB reg1, [reg2]❌❌❌
0x3ALDRSB reg1, [reg2 + imm32]❌❌❌
0x3BLDRSB reg1, [reg2 + imm32 * imm8]❌❌❌
0x3CLDRSB reg1, [imm32]❌❌❌
0x40-0x4FStore Word Instructions
0x41STR [reg1], reg2βœ…βœ…βŒ
0x42STR [reg1 + imm16], reg2βœ…βœ…βŒ
0x43STR [reg1 + reg2 * imm8], reg3βœ…βœ…βŒ
0x44STR [imm32], reg2βœ…βœ…βŒ
0x50-0x5FStore Half Instructions
0x51STRH [reg1], reg2❌❌❌
0x52STRH [reg1 + imm32], reg2❌❌❌
0x53STRH [reg1 + imm32 * imm8], reg2❌❌❌
0x54STRH [imm32], reg2❌❌❌
0x60-0x6FStore Byte Instructions
0x61STRB [reg1], reg2❌❌❌
0x62STRB [reg1 + imm32], reg2❌❌❌
0x63STRB [reg1 + imm32 * imm8], reg2❌❌❌
0x64STRB [imm32], reg2❌❌❌
0x70-0x7FArithmetic & Logic Instructions (reg)
0x70ADD reg1, reg2βœ…βœ…βŒ
0x71SUB reg1, reg2βœ…βœ…βŒ
0x72MUL reg1, reg2βœ…βœ…βŒ
0x73UDIV reg1, reg2βœ…βœ…βŒ
0x74SDIV reg1, reg2βœ…βœ…βŒ
0x75CMP reg1, reg2❌❌❌
0x76INC reg❌❌❌
0x77DEC reg❌❌❌
0x78NOT regβœ…βœ…βŒ
0x79AND reg1, reg2βœ…βœ…βŒ
0x7ANAND reg1, reg2βœ…βœ…βŒ
0x7BOR reg1, reg2βœ…βœ…βŒ
0x7CNOR reg1, reg2βœ…βœ…βŒ
0x7DXOR reg1, reg2❌❌❌
0x7EXNOR reg1, reg2❌❌❌
0x80-0x8FArithmetic & Logic Instructions (imm)
0x80ADD reg1, imm32❌❌❌
0x81SUB reg1, imm32❌❌❌
0x82MUL reg1, imm32❌❌❌
0x83UDIV reg1, imm32❌❌❌
0x84SDIV reg1, imm32❌❌❌
0x85CMP reg1, imm32❌❌❌
0x89AND reg1, imm32❌❌❌
0x8ANAND reg1, imm32❌❌❌
0x8BOR reg1, imm32❌❌❌
0x8CNOR reg1, imm32❌❌❌
0x8DXOR reg1, imm32❌❌❌
0x8EXNOR reg1, imm32❌❌❌
0x90-0x9FFlags (set) & Shifts (reg) Instructions
0x90STZβœ…βœ…βŒ
0x91STNβœ…βœ…βŒ
0x92STCβœ…βœ…βŒ
0x93STOβœ…βœ…βŒ
0x94STI🚧❌❌
0x98SHL reg1, reg2❌❌❌
0x99SHR reg1, reg2❌❌❌
0x9AROL reg1, reg2❌❌❌
0x9BROR reg1, reg2❌❌❌
0x9CRCL reg1, reg2❌❌❌
0x9DRCR reg1, reg2❌❌❌
0x9EASR reg1, reg2❌❌❌
0xA0-0xAFFlags (clear) & Shifts (imm) Instructions
0xA0CLZβœ…βœ…βŒ
0xA1CLNβœ…βœ…βŒ
0xA2CLCβœ…βœ…βŒ
0xA3CLOβœ…βœ…βŒ
0xA4CLI🚧❌❌
0xA5CLP🚧❌❌
0xA8SHL reg1, imm8❌❌❌
0xA9SHR reg1, imm8❌❌❌
0xAAROL reg1, imm8❌❌❌
0xABROR reg1, imm8❌❌❌
0xACRCL reg1, imm8❌❌❌
0xADRCR reg1, imm8❌❌❌
0xAEASR reg1, imm8❌❌❌
0xB0-0xBFJump instructions (Part 1)
0xB0JMP rel32βœ…βœ…βŒ
0xB1JMPN rel16βœ…βœ…βŒ
0xB2JMPS rel8βœ…βœ…βŒ
0xB3JZ rel32βœ…βœ…βŒ
0xB4JN rel32βœ…βœ…βŒ
0xB5JC rel32βœ…βœ…βŒ
0xB6JO rel32βœ…βœ…βŒ
0xBBJSZ rel32❌❌❌
0xBCJSN rel32❌❌❌
0xBDJSC rel32❌❌❌
0xBEJSO rel32❌❌❌
0xC0-0xCFJump instructions (Part 2)
0xC0JMPA abs32βœ…βœ…βŒ
0xC3JNZ rel32βœ…βœ…βŒ
0xC4JNN rel32βœ…βœ…βŒ
0xC5JNC rel32βœ…βœ…βŒ
0xC6JNO rel32βœ…βœ…βŒ
0xCBJSNZ rel32❌❌❌
0xCCJSNN rel32❌❌❌
0xCDJSNC rel32❌❌❌
0xCEJSNO rel32❌❌❌
0xD0-0xDFJump instructions (Part 3)
0xD3JL rel32βœ…βœ…βŒ
0xD4JLE rel32βœ…βœ…βŒ
0xD5JG rel32βœ…βœ…βŒ
0xD6JGE rel32βœ…βœ…βŒ
0xDBJSL rel8❌❌❌
0xDCJSLE rel8❌❌❌
0xDDJSG rel8❌❌❌
0xDEJSGE rel8❌❌❌
0xE0-0xEFStack instructions
0xE0PUSH regβœ…βœ…βŒ
0xE1PUSH imm32βœ…βœ…βŒ
0xE2POP regβœ…βœ…βŒ
0xE3PUSHF❌❌❌
0xE4POPF❌❌❌
0xF0-0xFFSubroutine instructions
0xF0CALL rel32βœ…βœ…βŒ
0xF1CALLN rel16❌❌❌
0xF2CALLS rel8❌❌❌
0xF3CALL [reg]❌❌❌
0xF8RETβœ…βœ…βŒ