Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 32-bit Instructions Types
- op a b c d f
- _____________________
- R-Type 6 5 5 5 5 6
- I-type 6 5 5 16
- J-Type 6 24
- Bit Length
- R-Types
- //____________________________________________________________________________________________________________________
- ADD overflow | 000000 RS RT RD 00000 100000 AKA (RD = RS + RT)
- ADDU noverflow | 000000 RS RT RD 00000 100001 AKA (RD = RS + RT)
- SUB overflow | 000000 RS RT RD 00000 100010 AKA (RD = RS - RT)
- SUBU noverflow | 000000 RS RT RD 00000 100011 AKA (RD = RS - RT)
- MUL noverflow | 000000 RS RT 00000 00000 011000 AKA (HI&&LO = RS * RT)
- MULU noverflow | 000000 RS RT 00000 00000 011001 AKA (HI&&LO = RS * RT)
- DIV noverflow | 000000 RS RT 00000 00000 011010 AKA (Lo = RS / RT ; Hi = RS mod RT)
- DIV noverflow | 000000 RS RT 00000 00000 011011 AKA (Lo = RS / RT ; Hi = RS mod RT)
- SLT noverflow | 000000 RS RT RD 00000 101010 AKA (if[RS < RT] RD = 0 || 1; else RD = 0)
- SLTU noverflow | 000000 RS RT RD 00000 101011 AKA (if[RS < RT] RD = 0 || 1; else RD = 0)
- AND noverflow | 000000 RS RT RD 00000 100100 AKA (RD = RS AND RT)
- OR noverflow | 000000 RS RT RD 00000 100101 AKA (RD = RS OR RT)
- NOR noverflow | 000000 RS RT RD 00000 100111 AKA (RD = RS NOR RT)
- XOR noverflow | 000000 RS RT RD 00000 101000 AKA (RD = RS XOR RT)
- NOP noverflow | 000000 00000 00000 00000 00000 000000 AKA (nop)
- MFHI noverflow | 000000 00000 00000 RD 00000 010000 AKA (RD = HI)
- MFLO noverflow | 000000 00000 00000 RD 00000 010010 AKA (RD = LO)
- I-Types
- //____________________________________________________________________________________________________________________
- ADDI overflow | 001000 RS RT Imm AKA (RT = RS + Imm) !16 bits!
- ADDIU noverflow | 001001 RS RT Imm AKA (RT = RS + Imm) !16 bits!
- SLTI noverflow | 001010 RS RT Imm AKA (if[RS < Imm] RT = 0 || 1; else RT = 0) !16 bits!
- SLTIU noverflow | 001011 RS RT Imm AKA (if[RS < Imm] RT = 0 || 1; else RT = 0) !16 bits!
- ANDI noverflow | 001100 RS RT Imm AKA (RT = RS AND Imm) !16 bits!
- ORI noverflow | 001101 RS RT Imm AKA (RT = RS OR Imm) !16 bits!
- XORI noverflow | 001110 RS RT Imm AKA (RT = RS XOR Imm) !16 bits!
- LW illegal | 100011 RS RT Off AKA (RT = &{RS+Off}) !16 bits! remember to know the difference between memory addresses and values
- SW illegal | 101011 RS RT Off AKA (&{RS+Off} = RT) !16 bits!
- LBU illegal | 100100 RS RT Off AKA (RT = &{RS + Off}) !16 bits!
- LB illegal | 100000 RS RT Off AKA (RT = &{RS + Off}) !16 bits!
- SB illegal | 101000 RS RT Off AKA (&{RS + Off} = RT) !16 bits!
- LUI illegal | 001111 00000 RT Imm AKA (RT = Imm)
- BEQ | 000100 RS RT Off AKA (if[RS == RT] goto Off)
- BNE | 000101 RS RT Off AKA (if[RS != RT] goto Off)
- BLEZ | 000110 RS 00000 Off AKA (if[RS <= 0] goto Off)
- BGTZ | 000111 RS 00000 Off AKA (if[RS > 0] goto Off)
- BLTZ | 000001 RS 00000 Off AKA (if[RS < 0] goto Off)
- Jumps / J-Types
- //____________________________________________________________________________________________________________________
- J | 000010 Off AKA (goto Off)
- JAL | 000011 Off AKA (goto Off)
- JR R-Type | 000000 RS 00000 00000 00000 001000 AKA (goto RS)
- JALR R-Type | 000000 RS 00000 RD 00000 001001 AKA (goto ??)
- Exceptions
- //____________________________________________________________________________________________________________________
- MFEPC R-Type | 010000 00000 RD 01110 00000 000000 AKA (RD = EPC)
- MFCO R-Type | 010000 00000 RD 01101 00000 000000 AKA (RD = CR)
- Floating Point
- //____________________________________________________________________________________________________________________
- LWC1 I-Type noverflow | 110001 RS FT Off AKA (FT = RS + Off)
- SWC1 I-Type noverflow | 111001 RS FT Off AKA (RS + Off = FT)
- ADD.S R-Type overflow | 010001 00000 FT FS FD 000000 AKA (FD = FS + FT)
- ADD.D R-Type overflow | 010001 00001 FT FS FD 000000 AKA (FD = FS + FT)
- SUB.S R-Type overflow | 010001 00000 FT FS FD 000001 AKA (FD = FS - FT)
- SUB.D R-Type overflow | 010001 00001 FT FS FD 000001 AKA (FD = FS - FT)
- MUL.S R-Type overflow | 010001 00000 FT FS FD 000002 AKA (FD = FS * FT)
- MUL.D R-Type overflow | 010001 00001 FT FS FD 000002 AKA (FD = FS * FT)
- DIV.S R-Type overflow | 010001 00000 FT FS FD 000003 AKA (FD = FS * FT)
- DIV.D R-Type overflow | 010001 00001 FT FS FD 000003 AKA (FD = FS * FT)
Add Comment
Please, Sign In to add comment