【CO101】计算机组成原理笔记2 —— MIPS指令转机器码
笔者:YY同学生命不息,代码不止。好玩的项目尽在GitHub文章目录RISC 与 CISCMIPS 指令类型R Type(Register)I Type(Immediate)J Type(Jump)指令集表RISC 与 CISCRISC(Reduced Instruction Set Computer,精简指令集计算机)优点 :每条指令集非常简单,执行时间很短缺点 :实现一个大功能所需的指令数量很
·
笔者:YY同学
文章目录
RISC 与 CISC
- RISC(Reduced Instruction Set Computer,精简指令集计算机)
优点 :每条指令集非常简单,执行时间很短
缺点 :实现一个大功能所需的指令数量很多
Example :MIPS、ARM、PowerPC- CISC(Complex Instruction Set Computer,复杂指令集计算机)
优点 :每条指令都能实现一定的复杂功能(相当于封装),方便写汇编语言
缺点 :每一条指令内部实现都非常复杂,执行时间很长
Example :x86
MIPS 指令类型
以 32bits 的 MIPS 指令为例,根据机器码组成可以分为五种类型:
- R Type
- I Type
- M Type
- B Type
- J Type
R Type(Register)
- 31~26(6bits)OPcode(R类型为全0) 配合 0~5(6bits)Function Code 表示 R 类型的具体指令
- 25~21(5bits)Register Source(Rs) 表示源寄存器地址(类似被加数)
- 16~20(5bits)Register Target(Rt) 表示选定目标寄存器地址(类似加数)
- 11~15(5bits)Register Destination(Rd) 表示目的地寄存器地址(类似等号后的结果)
- 6~10(5bits)Shift amount(一般用于sll和srl指令) 表示偏移量大小
Example :
I Type(Immediate)
- 31~26(6bits)OPcode 表示 I 类型的具体指令
- 25~21(5bits)Register Source(Rs) 表示源寄存器地址
- 16~20(5bits)Register Target(Rt) 表示选定目标寄存器地址
- 0~15(16bits)Immediate Number 表示立即数
Example :
M Type(Memory)
机器码组成类似于 I Type,0~15(16bits)Immediate Number 表示内存偏移量(按 word / byte 算)
Example :
B Type(Branch)
机器码组成类似于 I Type,0~15(16bits)Immediate Number 表示跳转偏移量(跳到自己是 -1,上一条是 -2,下一条是 0)
下 一 条 指 令 = P C + 4 + 4 ∗ 跳 转 偏 移 量 下一条指令 = PC + 4 + 4 * 跳转偏移量 下一条指令=PC+4+4∗跳转偏移量
当偏移量 = -1 时,相当于 P C + 4 + 4 ∗ ( − 1 ) = P C PC + 4 + 4 * (-1) = PC PC+4+4∗(−1)=PC,所以还是读取自己
Example :
J Type(Jump)
- 31~26(6bits)OPcode 表示 J 类型的具体指令
- 25~0(26bits)Jump Address 表示需要跳转的地址(一般是跳转地址第5位开始到第30位)
Example :
指令集表
更多推荐
所有评论(0)