Guest User

Untitled

a guest
Jul 11th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.77 KB | None | 0 0
  1. // 32-bit Instructions Types
  2. op a b c d f
  3. _____________________
  4. R-Type 6 5 5 5 5 6
  5. I-type 6 5 5 16
  6. J-Type 6 24
  7. Bit Length
  8.  
  9. R-Types
  10. //____________________________________________________________________________________________________________________
  11. ADD overflow | 000000 RS RT RD 00000 100000 AKA (RD = RS + RT)
  12. ADDU noverflow | 000000 RS RT RD 00000 100001 AKA (RD = RS + RT)
  13. SUB overflow | 000000 RS RT RD 00000 100010 AKA (RD = RS - RT)
  14. SUBU noverflow | 000000 RS RT RD 00000 100011 AKA (RD = RS - RT)
  15. MUL noverflow | 000000 RS RT 00000 00000 011000 AKA (HI&&LO = RS * RT)
  16. MULU noverflow | 000000 RS RT 00000 00000 011001 AKA (HI&&LO = RS * RT)
  17. DIV noverflow | 000000 RS RT 00000 00000 011010 AKA (Lo = RS / RT ; Hi = RS mod RT)
  18. DIV noverflow | 000000 RS RT 00000 00000 011011 AKA (Lo = RS / RT ; Hi = RS mod RT)
  19. SLT noverflow | 000000 RS RT RD 00000 101010 AKA (if[RS < RT] RD = 0 || 1; else RD = 0)
  20. SLTU noverflow | 000000 RS RT RD 00000 101011 AKA (if[RS < RT] RD = 0 || 1; else RD = 0)
  21. AND noverflow | 000000 RS RT RD 00000 100100 AKA (RD = RS AND RT)
  22. OR noverflow | 000000 RS RT RD 00000 100101 AKA (RD = RS OR RT)
  23. NOR noverflow | 000000 RS RT RD 00000 100111 AKA (RD = RS NOR RT)
  24. XOR noverflow | 000000 RS RT RD 00000 101000 AKA (RD = RS XOR RT)
  25. NOP noverflow | 000000 00000 00000 00000 00000 000000 AKA (nop)
  26. MFHI noverflow | 000000 00000 00000 RD 00000 010000 AKA (RD = HI)
  27. MFLO noverflow | 000000 00000 00000 RD 00000 010010 AKA (RD = LO)
  28.  
  29. I-Types
  30. //____________________________________________________________________________________________________________________
  31. ADDI overflow | 001000 RS RT Imm AKA (RT = RS + Imm) !16 bits!
  32. ADDIU noverflow | 001001 RS RT Imm AKA (RT = RS + Imm) !16 bits!
  33. SLTI noverflow | 001010 RS RT Imm AKA (if[RS < Imm] RT = 0 || 1; else RT = 0) !16 bits!
  34. SLTIU noverflow | 001011 RS RT Imm AKA (if[RS < Imm] RT = 0 || 1; else RT = 0) !16 bits!
  35. ANDI noverflow | 001100 RS RT Imm AKA (RT = RS AND Imm) !16 bits!
  36. ORI noverflow | 001101 RS RT Imm AKA (RT = RS OR Imm) !16 bits!
  37. XORI noverflow | 001110 RS RT Imm AKA (RT = RS XOR Imm) !16 bits!
  38. LW illegal | 100011 RS RT Off AKA (RT = &{RS+Off}) !16 bits! remember to know the difference between memory addresses and values
  39. SW illegal | 101011 RS RT Off AKA (&{RS+Off} = RT) !16 bits!
  40. LBU illegal | 100100 RS RT Off AKA (RT = &{RS + Off}) !16 bits!
  41. LB illegal | 100000 RS RT Off AKA (RT = &{RS + Off}) !16 bits!
  42. SB illegal | 101000 RS RT Off AKA (&{RS + Off} = RT) !16 bits!
  43. LUI illegal | 001111 00000 RT Imm AKA (RT = Imm)
  44. BEQ | 000100 RS RT Off AKA (if[RS == RT] goto Off)
  45. BNE | 000101 RS RT Off AKA (if[RS != RT] goto Off)
  46. BLEZ | 000110 RS 00000 Off AKA (if[RS <= 0] goto Off)
  47. BGTZ | 000111 RS 00000 Off AKA (if[RS > 0] goto Off)
  48. BLTZ | 000001 RS 00000 Off AKA (if[RS < 0] goto Off)
  49.  
  50. Jumps / J-Types
  51. //____________________________________________________________________________________________________________________
  52. J | 000010 Off AKA (goto Off)
  53. JAL | 000011 Off AKA (goto Off)
  54. JR R-Type | 000000 RS 00000 00000 00000 001000 AKA (goto RS)
  55. JALR R-Type | 000000 RS 00000 RD 00000 001001 AKA (goto ??)
  56.  
  57. Exceptions
  58. //____________________________________________________________________________________________________________________
  59. MFEPC R-Type | 010000 00000 RD 01110 00000 000000 AKA (RD = EPC)
  60. MFCO R-Type | 010000 00000 RD 01101 00000 000000 AKA (RD = CR)
  61.  
  62. Floating Point
  63. //____________________________________________________________________________________________________________________
  64. LWC1 I-Type noverflow | 110001 RS FT Off AKA (FT = RS + Off)
  65. SWC1 I-Type noverflow | 111001 RS FT Off AKA (RS + Off = FT)
  66. ADD.S R-Type overflow | 010001 00000 FT FS FD 000000 AKA (FD = FS + FT)
  67. ADD.D R-Type overflow | 010001 00001 FT FS FD 000000 AKA (FD = FS + FT)
  68. SUB.S R-Type overflow | 010001 00000 FT FS FD 000001 AKA (FD = FS - FT)
  69. SUB.D R-Type overflow | 010001 00001 FT FS FD 000001 AKA (FD = FS - FT)
  70. MUL.S R-Type overflow | 010001 00000 FT FS FD 000002 AKA (FD = FS * FT)
  71. MUL.D R-Type overflow | 010001 00001 FT FS FD 000002 AKA (FD = FS * FT)
  72. DIV.S R-Type overflow | 010001 00000 FT FS FD 000003 AKA (FD = FS * FT)
  73. DIV.D R-Type overflow | 010001 00001 FT FS FD 000003 AKA (FD = FS * FT)
Add Comment
Please, Sign In to add comment