计算机组成原理——指令体系

在这里插入图片描述
在这里插入图片描述
指令结构
在这里插入图片描述

指令的分类

在这里插入图片描述
1次访存
在这里插入图片描述

2次访存在这里插入图片描述
4次访存
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

扩展操作码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

指令寻址

指令寻址和编码方式有关
在这里插入图片描述

定长之指令结构
在这里插入图片描述
变长指令,通过读取第一个字节在判断指令长度
在这里插入图片描述
无条件转移指令
在这里插入图片描述
在这里插入图片描述

数据寻址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六种普通寻址方式

直接寻址
有效地址就是真实地址
在这里插入图片描述
间接寻址方式
存储的是数据地址的地址
在这里插入图片描述
寄存器寻址
操作数在寄存器里面
在这里插入图片描述
寄存器间接寻址
寄存器里面存放的是操作数的地址
在这里插入图片描述
隐含寻址
地址不是明显的给出
在这里插入图片描述
立即寻址
操作数会直接放在指令中,这种操作数被称为立即数
在这里插入图片描述

三种偏移寻址

在这里插入图片描述

基址寻址

根据基址寄存器作为基地址,在根据基地址和数据码求和得到真实的地址,也可以用通用寄存在来存放这个基地址,每个程序的位置都是不定的,在程序移动的时候基地址也会改变,这样不论程序在什么位置都这个操作码都能指向正确的地址
在这里插入图片描述
在这里插入图片描述
基址寄存器的值不由人为控制,完全面向操作系统
在这里插入图片描述

变址寻址

变址寄存器和基址寄存器的原理一模一样,都是地址码加上寄存器的值得到真实地址,唯一的区别是变址寄存器可以人为的指定,且地址码作为基地址而寄存器里面的值作为偏移量。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基址寻址&变址复合寻址

在这里插入图片描述

相对寻址

在这里插入图片描述
通过程序和数据的分段可以很好的解决程序内代码移动造成的数据位置改变的问题。相对寻址又可以解决跳转指令因为代码移动而给改变的问题。
在这里插入图片描述
在这里插入图片描述

堆栈寻址

硬堆栈;用寄存器存储
在这里插入图片描述
软堆栈:用内存存储
在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述# CISC和RISC
在这里插入图片描述

真题

2020:直接寻址的地址码从0开始到2n位,n为地址码个数
2018:按字节编址的计算机中,变址寻址访问double数组A,数组A的首地址为2000H,变址寄存器的初始值为0,每次循环取一个数组元素,偏移地址为变址值乘以sizeof(double),取完之后变址寄存器内容自动加一,若某一次取元素的地址为2100H,则进入该次循环时变址寄存器的内容是多少?
解:2100H相对于2000H地址变换了100H=256D 每次偏移量为double乘以寄存器的值,double含64位8B,计算机按字节编址,变址寄存器的值每次加一,则256/8=变址寄存器的值=32,

2014:某计算机有16个通用寄存器,采用32位定长指令字,操作码为8位,store指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址方式。若基址寄存器可使用任一通用寄存器,且偏移量永不吗表示,则store指令中的偏移量的取值范围是多少?
解:指令长度为32,操作码占8位,一共有16个通用寄存器,需要4位来表示,源操作数和目的操作数都需要选择寄存器,所以选择寄存器需要占8位,所以剩下来的16全部用来表示基址寄存器的偏移量,16位的补码表示范围是-32768~+32767

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值