常用寻址方式 计算机系统结构,chapter2-2寻址方式 计算机体系结构教材.ppt

chapter2-2寻址方式 计算机体系结构教材.ppt

1

§2-2 寻址方式

寻址方式:是指令按什么方式寻找(访问)到所需的操作数或信息的。

1 寻址方式分析

2 寻址方式在指令中的指明

3 程序在主存中的定位技术

4 物理主存中信息的存储分布

2

1 寻址方式分析

大多数计算机都将主存、通用寄存器、堆栈分类编址,因此就有分别面向寄存器、堆栈和主存的寻址方式。

面向主存:主要访问内存,少量访问寄存器

面向通用寄存器:多数在寄存器,少量在内存

面向堆栈:主要在堆栈,可减轻编译负担

3

寻址方式(又称编址方式)指的是确定本条指令的操作数或操作数地址,或确定下一条要执行指令的指令地址的方法。

不同的计算机系统,使用数目和功能不同的寻址方式,其实现的复杂程度和运行性能各不相同。有的计算机寻址方式较少,而有些计算机采用多种寻址方式。通常需要在指令中为每一个操作数专设一个地址字段,用来表示数据的来源或去向的地址。在指令中给出的操作数的地址被称为形式地址,使用形式地址信息并按一定的规则计算出来的一个数值才是数据(或指令)的实际地址。

可能存放操作数的存储结构:

–①CPU中的寄存器(编号)

–②主存储器

–③堆栈

–④外存储器

–⑤外设端口(接口中CPU可直接访问的寄存器)

寻址方式的种类(选讲介绍)

4

操作数出现在指令中或紧跟指令之后。

Num 即为操作数的值。

适用于操作数固定的情况,提高了指令的执行速度,当该立即数的值限定为较小值(占用位数少)时,可在第一个指令字中直接给出(定长指令字),否则可在第二个指令字中给出(变长指令字)。

立即数寻址

5

(1)寄存器直接寻址方式:操作数在指定寄存器中,指令中给出寄存器号。

直接寻址

例:RegNo.=5,使用5# 累加器,此时5# 累加器中的内容为7,可记为(R5)=7,对寄存器寻址方式,操作数就是这里的数值7。

8

(2)存储器间址方式:指令的地址码字段给出的内容既不是操作数,也不是操作数的地址,而是操作数(或指令)地址的地址。

多一次读内存储器的操作。

指令中的 Addr 可以用其他寻址方式给出,例如变址寻址,这就成为变址寻址与间接寻址的复合寻址方式。

9

操作数的地址由指定的变址寄存器(由Reg指定)的内容和指令中的地址码(Disp)相加得到存储操作操作数的主存地址。

变址寻址

例:Disp=18H,Reg=5,(R5)=5700H

则操作数地址 = 5718H

便于对数组元素进行处理,是计算机中常用的一种寻址方式。

10

操作数(或指令)的地址由程序计数器 PC 的内容(即当前执行指令的地址)和指令的地址码(位移量,可正可负)相加得到。得到操作数有效地址,或是程序转移地址。

相对寻址(偏移寻址)

例:Disp = 48H(PC) = 5600H

则实际地址 = 5648H

1).主要用于转移指令,对浮动程序很有用。

2).位移量可正可负,通常用补码表示。

11

在计算机中设置一个专用的基址寄存器,通过基址寄存器的内容和指令中的位移量相加得到操作数(或指令)的地址。

基址寻址

例:Disp= 18H,[BS]= 5700H

则操作数地址=5718H

主要用于为程序或数据分配存储区,对多道程序或浮动程序很有用,解决了程序在存储器中的定位和扩大寻址空间等问题。

12

堆栈是内存储器中一块按 “后进先出” 原则进行读写的存储区,并通过一个专用的寄存器(称为堆栈指针SP)给出堆栈的栈顶(和次栈顶)地址完成数据的读写操作,故不必在指令中用操作数地址字段给出堆栈地址。通常在读写操作的前后伴随有计算机自动(不是用户通过指令)修改 SP 内容的动作,以确保按正确的 “后进先出” 原则读写堆栈区。

例如:(SP)- 1  SP和 AR,即SP的内容减 1 存回 SP,并送内存地址寄存器,接下来才可以把数据写到堆栈中。完成一次读堆栈操作后,要接着执行(SP)+ 1  SP 的一次自动修改 SP 内容的操作。

堆栈寻址

需要注意的是,指令长度可能是一个字,也可能是两个字或多个字,要看操作数地址字段的位数要求,由具体的情况决定。

13

寻址方式使用情况统计结果

例1:在VAX指令集机器上运行gcc、Spice和Tex基准程序,各种寻址方式的分布如下图:

立即值寻址方式和偏移寻址方式的使用频率十分高。

14

各种偏移量字段大小的使用情况

例2:在某R-R机器上运行SPECint92和SPECfp92进行测试,结果分布如下:

15

各种偏移量字段大小的使用情况(续)

程序所使用的偏移量大小分布十分广泛;

较小的偏移量和较大的偏移量均占有相当大的比例;

将偏移量字段的大小设置为12~16位。这种长度可以支持上述75%~99%基于偏移寻址方式的数据访问中偏移量大小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值