【CO101】计算机组成原理笔记2 —— MIPS指令转机器码

笔者:YY同学

生命不息,代码不止。好玩的项目尽在GitHub


文章目录

    • RISC 与 CISC
    • MIPS 指令类型
    • R Type(Register)
    • I Type(Immediate)
    • M Type(Memory)
    • B Type(Branch)
    • J Type(Jump)
    • 指令集表


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 :
    【CO101】计算机组成原理笔记2 —— MIPS指令转机器码_第1张图片
    【CO101】计算机组成原理笔记2 —— MIPS指令转机器码_第2张图片


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 :
    【CO101】计算机组成原理笔记2 —— MIPS指令转机器码_第3张图片


M Type(Memory)

机器码组成类似于 I Type,0~15(16bits)Immediate Number 表示内存偏移量(按 word / byte 算)


Example :
【CO101】计算机组成原理笔记2 —— MIPS指令转机器码_第4张图片


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 :
【CO101】计算机组成原理笔记2 —— MIPS指令转机器码_第5张图片


J Type(Jump)

在这里插入图片描述

  • 31~26(6bits)OPcode 表示 J 类型的具体指令
  • 25~0(26bits)Jump Address 表示需要跳转的地址(一般是跳转地址第5位开始到第30位)


    Example :
    【CO101】计算机组成原理笔记2 —— MIPS指令转机器码_第6张图片


指令集表

【CO101】计算机组成原理笔记2 —— MIPS指令转机器码_第7张图片

【CO101】计算机组成原理笔记2 —— MIPS指令转机器码_第8张图片

你可能感兴趣的:(CO101,计算机组成原理,mips,经验分享,机器码)