第2章 指令集基本原理

指令集体系结构的分类

最主要的区别:CPU用来存储操作数的存储单元类型

  • 堆栈:堆栈结构

  • 累加器:累加器结构

  • 通用寄存器:通用寄存器结构(主流结构)

    • 寄存器-寄存器型(RR) / load-store结构
    • 寄存器-存储器型(RM)
    • 存储器存储器型(MM)

image-20210312101629435

根据操作数特征细分:

ALU指令中存储器操作数的个数ALU指令中操作数的最多个数结构类型实例
03RRMIPS
12RMx86
22MMVAX
33MMVAX

存储器寻址

image-20210312103527682

  • 最常用的是较小立即数(有时候也会用到较大立即数,如地址计算)
  • 指令集结构设计中,至少要将立即数大小设置为8~16位

操作数的类型与大小

由指令中的操作码指定操作数的类型

大小:操作数的位数/字节数(字节8位,半字16位,字32位,双字64位)

类型:字符(ASCII码表示,一个字节大小)、整数(用二进制补码表示,大小可以是字节、半字或单字)、浮点操作数(单精度1个字,双精度双字,IEEE 754标准)

十进制操作数类型:

  • 压缩十进制或二进制编码十进制
  • 非压缩十进制:字符串表示

指令集中的操作

image-20210319084140600

控制流指令

  • 跳转
  • 分支(占控制流的大部分)
  • 过程调用
  • 过程返回

指令集编码

变长编码格式(适合寻址方式和操作种类很多时)、定长编码格式(适用于寻址方式和操作类型非常少时)、混合型编码格式

指令设计风格

  • 复杂指令集计算机CISC
  • 精简指令集计算机RISC

MIPS体系结构

寄存器

  • 32个64位通用寄存器(GPRS) R0…R31

  • 32个64位浮点数寄存器(FPRS) F0…F31

  • 一些特殊寄存器,如浮点状态寄存器

功能定义

数据类型

  • 整数
  • 浮点数

寻址方式

立即数寻址和偏移量寻址,字段都是16位

指令格式

寻址方式编码到操作码中,所有指令都是32位,操作码占6位,3种指令格式

  • I类:load、store
  • R类:ALU指令、专用寄存器读/写指令、move指令
  • J类:跳转、跳转并链接、自陷指令、异常返回指令

image-20210319102420235

MIPS操作

  • load和store

  • ALU操作

  • 分支与跳转

  • J类:跳转、跳转并链接、自陷指令、异常返回指令

[外链图片转存中…(img-7ZhlK6tE-1616121307903)]

MIPS操作

  • load和store
  • ALU操作
  • 分支与跳转
  • 浮点操作
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值