diff --git a/ISA_HEX_Map.org b/ISA_HEX_Map.org index 01e703d..1cfa41e 100644 --- a/ISA_HEX_Map.org +++ b/ISA_HEX_Map.org @@ -1,39 +1,49 @@ * Instruction Listing ** 00 xx xx xx :: NOP -00 00 00 00 # Proper NOP -00 xx xx xx # NOP equivelent, although these instructions will all be treated as NOPs. DO NOT USE THEM. +| Hex | Name | Comment | +|-------------+-----------------+---------------------------------------------------------------------------| +| 00 00 00 00 | Proper NOP | | +| 00 xx xx xx | NOP equivelent. | Although these instructions will all be treated as NOPs. DO NOT USE THEM. | ** 4OP Groups 4OP nn is the XOP, a = b OP c Cond d *** 01 nn ab cd :: 4OP Integer group **** Add subgroup -01 00 ab cd # ADD.CI a b c d :: a = b + c + CARRY? d [signed] -01 01 ab cd # ADD.CO a b c d :: a = b + c; d = CARRY? [signed] -01 02 ab cd # ADD.CIO a b c d :: a = b + c + CARRY? d; d = CARRY? [signed] -01 03 ab cd # ADDU.CI a b c d :: a = b + c + CARRY? d [unsigned] -01 04 ab cd # ADDU.CO a b c d :: a = b + c; d = CARRY? [unsigned] -01 05 ab cd # ADDU.CIO a b c d :: a = b + c + CARRY? d; d = CARRY? [unsigned] +| Hex | Name | Comment | +|-------------+------------------+---------------------------------------------| +| 01 00 ab cd | ADD.CI a b c d | a = b + c + CARRY? d [signed] | +| 01 01 ab cd | ADD.CO a b c d | a = b + c; d = CARRY? [signed] | +| 01 02 ab cd | ADD.CIO a b c d | a = b + c + CARRY? d; d = CARRY? [signed] | +| 01 03 ab cd | ADDU.CI a b c d | a = b + c + CARRY? d [unsigned] | +| 01 04 ab cd | ADDU.CO a b c d | a = b + c; d = CARRY? [unsigned] | +| 01 05 ab cd | ADDU.CIO a b c d | a = b + c + CARRY? d; d = CARRY? [unsigned] | **** Subtract subgroup -01 06 ab cd # SUB.BI a b c d :: a = b - c - BORROW? d [signed] -01 07 ab cd # SUB.BO a b c d :: a = b - c; d = BORROW? [signed] -01 08 ab cd # SUB.BIO a b c d :: a = b - c - BORROW? d; d = BORROW? [signed] -01 09 ab cd # SUBU.BI a b c d :: a = b - c - BORROW? d [unsigned] -01 0A ab cd # SUBU.BO a b c d :: a = b - c; d = BORROW? [unsigned] -01 0B ab cd # SUBU.BIO a b c d :: a = b - c - BORROW? d; d = BORROW? [unsigned] +| Hex | Name | Comment | +|-------------+------------------+-----------------------------------------------| +| 01 06 ab cd | SUB.BI a b c d | a = b - c - BORROW? d [signed] | +| 01 07 ab cd | SUB.BO a b c d | a = b - c; d = BORROW? [signed] | +| 01 08 ab cd | SUB.BIO a b c d | a = b - c - BORROW? d; d = BORROW? [signed] | +| 01 09 ab cd | SUBU.BI a b c d | a = b - c - BORROW? d [unsigned] | +| 01 0A ab cd | SUBU.BO a b c d | a = b - c; d = BORROW? [unsigned] | +| 01 0B ab cd | SUBU.BIO a b c d | a = b - c - BORROW? d; d = BORROW? [unsigned] | **** long math subgroup -01 0C ab cd # MULTIPLY a b c d :: a = MUL c d; b = MULH c d [signed] -01 0D ab cd # MULTIPLYU a b c d :: a = MUL c d; b = MULH c d [unsigned] -01 0E ab cd # DIVIDE a b c d :: a = DIV c d; b = MOD c d [signed] -01 0F ab cd # DIVIDEU a b c d :: a = DIV c d; b = MOD c d [unsigned] +| Hex | Name | Comment | +|-------------+-------------------+--------------------------------------| +| 01 0C ab cd | MULTIPLY a b c d | a = MUL c d; b = MULH c d [signed] | +| 01 0D ab cd | MULTIPLYU a b c d | a = MUL c d; b = MULH c d [unsigned] | +| 01 0E ab cd | DIVIDE a b c d | a = DIV c d; b = MOD c d [signed] | +| 01 0F ab cd | DIVIDEU a b c d | a = DIV c d; b = MOD c d [unsigned] | **** Logic subgroup -01 10 ab cd # MUX a b c d :: a = (c & ~b) | (d & b) -01 11 ab cd # NMUX a b c d :: a = (c & b) | (d & ~b) -01 12 ab cd # SORT a b c d :: a = MAX(c, d); b = MIN(c, d) [signed] -01 13 ab cd # SORTU a b c d :: a = MAX(c, d); b = MIN(c, d) [unsigned] +| Hex | Name | Comment | +|-------------+---------------+-----------------------------------------| +| 01 10 ab cd | MUX a b c d | a = (c & ~b) \vert (d & b) | +| 01 11 ab cd | NMUX a b c d | a = (c & b) \vert (d & ~b) | +| 01 12 ab cd | SORT a b c d | a = MAX(c, d); b = MIN(c, d) [signed] | +| 01 13 ab cd | SORTU a b c d | a = MAX(c, d); b = MIN(c, d) [unsigned] | **** Reserved Block 01 14 xx xx # Reserved