计算机组成原理(7)指令系统——偏移寻址、堆栈寻址、CISC和RISC

本文详细介绍了计算机科学中的寻址方式,包括指令寻址和数据寻址的不同形式,并探讨了基址寻址、变址寻址及相对寻址的特点和应用。此外,还对比了复杂指令集计算机(CISC)与精简指令集计算机(RISC)的区别。

上一回主要讲了寻址方式:指令寻址和数据寻址

指令寻址分为定长指令字结构(分为四地址指令、三地址指令等,操作码的长度固定,指令长度固定,就是后面的地址长度进行变化)和变长指令字结构

同时也可分为定长操作码和可扩展操作码(就是把其中的一种状态表示成可扩展形式)

数据寻址也分为多种形式,用特征码表示,有立即寻址、直接寻址等,不同的方式访问主存的次数也不一样


偏移寻址

偏移寻址:基址寻址、变址寻址、相对寻址

有效地址的产生需要进行加法计算

基址寻址

EA=(BR)+A

优点:

  • 可以扩大寻址范围 ,因为A的位数少,BR的位数多,相加的话增加了EA的位数,寻址范围就扩大了,可将主存的每段首地址放到基地址,段内的位移量由指令字中的形式地址指出。
  • 用户不必考虑程序存于主存的哪,有利于多道程序的设计,可用于编制浮动程序。可以把D理解为相对位置,BR理解为起始位置,那么程序放在哪由BR决定。

分类:隐式(a)和显式(b),显式由用户指出哪个寄存器用做基址寄存器,存放基地址。

基地址是面向操作系统的,其内容由操作系统或管理程序确定

变址寻址

EA=(IX)+A

优点:可扩大寻址范围;适合编制循环程序:可设定A为数组的首地址,不断改变变址寄存器IX的内容,来实现数组中挨个访问

面向用户,与基址寻址过程相似

为了实现在主存中浮动,可将基址寻址和变址寻址一起使用,EA=A+(BR)+(IX) 所以一般在主存中存储都是混合使用的

相对寻址

EA=(PC)+A

A是相对于当前指令地址的位移量,可正可负

前面两种寻址方式更适合于数据数组的寻址,而相对寻址更适合指令寻址。

优点:便于程序浮动:不同于基址寻址的全局浮动,它是在程序内部浮动,用于程序转移,只需要看PC在哪即可,不用从头数。

 

堆栈寻址

操作数放在堆栈中,隐含使用堆栈指针(SP)为操作数地址。堆栈式存储器中的一块特殊的存储区,按照先进后出的原则进行存储数据。

主要就是需要掌握入栈和出栈的过程,比如说:两个数相加后的数放回堆栈中的过程。

还有硬堆栈(在一组寄存器中实现)和软堆栈(在主存中实现)之分。

CISC与RISC

主流的CPU指令集类型

CISC:复杂指令集计算机

与其他设计相比,在CISC中进行程序设计要比在其他设计中容易,因为每一项简单或复杂的任务都有一条对应的指令。

80-20规律:在CISC指令集的各种指令中,其使用频率却相差悬殊,大约有20%的指令会被反复使用,占整个程序代码的80%。而余下的80%的指令却不经常使用,在程序设计中只占20%。

代表:x86架构,主要用于笔记本、台式机等

RISC:精简指令集计算机

因为80-20规律,所以其实只需要少量指令就可完成大部分工作,复杂的指令可以用那些基本指令组合而成。

特点:一条指令完成一个基本“动作”,多条指令组合完成一个复杂的基本功能。

代表:ARM架构,主要用于手机、平板等

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值