计组 |
您所在的位置:网站首页 › 计算机各种计算公式 › 计组 |
针对地址码的解读方式不同,寻址方式分为十种 这是一地址指令格式: 操作码(OP)寻址特征形式地址(A)这是二地址指令格式: 操作码(OP)寻址特征形式地址(A1)寻址特征形式地址(A2)形式地址用A表示 真实地址用EA表示 下面以一地址为例进行讲解,并且假设指令字长=机器字长=存储字长 1. 直接寻址指令中的形式地址A就是EA,即EA=A 指令中的形式地址是有效地址所在的存储单元的地址,即EA=(A) 假设指令字长=机器字长=存储字长,操作数为3 在指令字中直接给出操作数所在的寄存器编号,即
E
A
=
R
i
EA=R_{i}
EA=Ri,其操作数在
R
i
R_{i}
Ri所指的寄存器内 开始套娃,寄存器
R
i
R_{i}
Ri中给出的不是一个操作数,而是操作数所在主存单元的地址,即
E
A
=
(
R
i
)
EA=(R_{i})
EA=(Ri) 地址不是明显给出,而是隐藏在指令中 假设指令字长=机器字长=存储字长,操作数为3 形式地址A就是操作数本身,又称立即数,一般用补码形式表示 #表示立即寻址特征 共访存一次:取指令1次访存+执行指令0次访存 缺点: A的位数会限制立即数的范围 如A的位数为n,且立即数采用补码时,可表示的数据范围为:-2n-1~2n-1-1 基址寻址:以程序的起始存放地址作为“起点”,EA=(BR)+A
优点:便于程序“浮动”,方便实现多道程序并发运行 注意:基址寄存器是面向操作系统的,其内容由操作系统或管理系统确定。在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变(作为偏移量) 当采用通用寄存器作为基址寄存器时,可由用户决定哪个寄存器作为基址寄存器,但其内容由操作系统确定。 OS课中的“重定位寄存器”就是“基址寄存器” 优点:可扩大寻址范围(基址寄存器的位数大于形式A的位数);用户不必考虑自己的程序存于主存的哪一空间区域,故有利于多道程序设计,以及可用于编制浮动程序(整个程序在内存里边的浮动) 8. 偏移寻址——变址寻址变址寻址:程序员自己决定从哪里作为“起点”,EA=(IX)+A, 其中IX可谓变址寄存器(专用),也可用通用寄存器作为变址寄存器。
相对寻址:以程序计数器PC所指地址作为“起点”,EA=(PC)+A 把程序计数器PC的内容加上指令格式中的形式地址A而形成操作数的有效地址,其中A是相对PC所指地址的位移量,可正可负,补码表示。 优点:操作数的地址不是固定的,它随着PC值的变化而变化,并且与指令地址之间总是相差一个固定值,因此便于程序浮动(一段代码在程序内部的浮动) 相对寻址广泛应用于转移指令。 相对寻址,取出当前指令后,PC会自动指向下一条指令,相对寻址是相对于下一条指令的偏移。 10. 堆栈寻址操作数存放在堆栈中,隐含使用堆栈指针(SP)作为操作数地址。 总结第四章第04,05(偏移寻址)节 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |