概述
@寻址方式小结
指令寻址
-
顺序寻址
指令地址在内存中按顺序排列,这是一种按照程序顺序执行的寻址方式。
-
跳跃寻址
下条指令的地址吗不是有PC(程序计数器)给出而是由本条直接指令给出。用法最多的是JMP指令。当跳转到新指令地址,又会按照新的指令地址顺序执行。
数据寻址
-
隐含寻址
没有给出操作数地址,而是在指令中隐含着操作数地址。比如单指令的指令格式,累加寄存器AC是隐含地址. -
立即寻址
立即寻址指令的地址字段就是操作数,而不是操作数的地址。
优点指令执行时间短,节省访存时间。
-
直接寻址
这里(存储器)的直接寻址的指令的地址字段就是操作数地址了,(要与立即寻址区分),通过操作数的地址访问主存储器就可得到操作数。
EA=A
操作数S=(A)
-
间接寻址(重点)
(存储器)间接寻址是相对与上面的直接寻址而言的,这是的指令地址字段的形式地址是操作数地址的指示器。(可能有点难以理解qaq,可以把它理解为形式地址里存放了一个C语言的一级指针),通过“指针”找到对应的内容(操作数)。所以指令地址字段存放了操作数的地址的地址,也就是相当于二级指针。
EA=(A)
操作数S=(EA)=((A))
注意,既然可以有一级间接寻址,那么也可以有二级,多级间接寻址,原理一样的。 -
寄存器寻址
可以参照前面的直接寻址,区别就是前面的放在主存储器中,这个放在寄存器中。 -
寄存器间接寻址
类似于前面的间接寻址,这种方式是第一次在寄存器中找,第二次在主存储器中找。而前面的都是在存储器中找。(可以把寄存器理解为个中间商)
-
基址寻址
基址寄存器的内容叫做基址值,指令的地址码字段Disp是一个偏移量。(Disp指出操作数和现行指令之间的相对地址)。这种方式是将基址值加上指令格式形式地址而形成操作数的有效地址。
优点是基址寄存器的位数可以设置很大,从而基址寻址可以在更大的存储空间中寻址,扩大寻址能力。 -
变址寻址
这个与基址寻址相似,(要注意区分),变址寻址方是将某个变址寄存器的内容与偏移量(Disp)相加形成操作数的有效地址(Tips:复习一下qaq,基址寻址是将基址寄存器的内容和Disp相加得到操作数的有效地址),再通过操作数的有效地址寻找操作数。
EA=(Rx)+Disp
操作数S=((Rx)+Disp)
-
基址加变址寻址
这个就是基址寻址和变址寻址的结合,计算方法类似,但需要将三者相加得到操作数的有效地址,从而提供更灵活的寻址空间。
EA=(Rb)+(Rx)+Disp
操作数S=((Rb)+(Rx)+Disp)
-
相对寻址
相对寻址就是把程序计数器PC的内容加上指令的形式地址Disp而形成操作数的有效地址。
它的优点是所编程序可以放在主存储器的任何地方,程序员无需使用指令的绝对地址编程。相对寻址是基址寻址的变通,由PC提供基准地址。
EA=(PC)+Disp
操作数S=(EA=(PC)+Disp)
相对寻址方式,操作数地址不是固定的,是随着PC值变化而变化的,而且与指令地址之间相差一个固定值Disp.
习题巩固
若文中有错,欢迎大家批评纠错!QAQ。(码字不易,但点赞是我的动力!),谢谢大家
最后
以上就是懵懂老师为你收集整理的寻址方式小结的全部内容,希望文章能够帮你解决寻址方式小结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复