地址寄存器间接寻址进行详解

关于间接寻址分为存储器间接寻址和地址寄存器间接寻址,本文主要针对地址寄存器间接寻址进行详细讲解。
一、ar 的格式介绍
地址寄存器是专门用于寻址的一个特殊指针区域,西门子的地址寄存器共有两个:ar1 和 ar2,每个 32 位。当使用在区域内寄存器间接寻址中时,我们知道这时的 ar 中的内容只是指明数值单元,因此,区域内寄存器间接寻址时,寄存器中的内容等同于上帖中提及的存储器间接寻址中的双字指针。
这样规定,就意味着 ar 的取值只能是:0.0 ——65535.7
例如:当 ar=d4(hex)=0000 0000 0000 0000 0000 0000 1101 0100(b),实际上就是等于 26.4。
而在区域间寄存器间接寻址中,由于要寻址的区域也要在 ar 中指定,显然这时的 ar 中内容肯定于寄存器区域内间接寻址时,对 ar 内容的要求,或者说规定不同。
比较一下两种格式的不同,我们发现,这里的第 31bit 被固定为 1,同时,第 24、25、26 位有了可以取值的范围。聪明的你,肯定可以联想到,这是用于指定存储区域的。对,bit24-26 的取值确定了要寻址的区域,它的取值是这样定义的:
如果我们把这样的 ar 内容,用 hex 表示的话,那么就有:
当是对 p 区域寻址时,ar=800xxxxx
当是对 i 区域寻址时,ar=810xxxxx
当是对 q 区域寻址时,ar=820xxxxx
当是对 m 区域寻址时,ar=830xxxxx
当是对 db 区域寻址时,ar=840xxxxx
当是对 di 区域寻址时,ar=850xxxxx
当是对 l 区域寻址时,ar=870xxxxx
经过列举,我们有了初步的结论:如果 ar 中的内容是 8 开头,那么就一定是区域间寻址;如果要在 db 区中进行寻址,只需在 8 后面跟上一个 40。84000000-840fffff 指明了要寻址的范围是:db 区的 0.0——65535.7。
例如:当 ar=840000d4(hex)=1000 0100 0000 0000 0000 0000 1101 0100(b),实际上就是等于 dbx26.4。
二**、ar 的格式的程序**
程序:
在程序中使用sld进行地址偏移,是因为地址是从第88个字节地址开始,如有其他不理解的,可以直接通过微信公众平台,联系小编。
免责声明:本文系网络转载,版权归原作者所有。但因转载众多,无法确认真正原始作者,本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将立即删除内容!本文内容为原作者观点,并不代表本公众号赞同其观点和对其真实性负责。

刀片电池的隔膜独家供应商是谁
浅谈贴片电容的焊接步骤
分享关于运算放大器电源上电时序导致的风险避免以及相关研究
PPA之外,芯片设计还有第四极?
网友投递:华为申请 “NOVA Watch”商标,暗示华为有望推出 Nova 系新品
地址寄存器间接寻址进行详解
沃尔沃为实现其在2020年之前将死亡率降至零的目标,将限制其汽车的最高速度
运放参数解析:运放电路闭环稳定性的判断方法
电路板行业市场大_2020年产值逼近600亿美元
FEP透明管(铁氟龙fep管)的特征及主要用途
太阳能光伏成为未来新能源的主流形式,特斯拉联手松下联手生产太阳能电池
西门子PLC实操8步顺控编程窍门
最新黑科技来袭 很多企业开始“不务正业”
电子采购系统(SRM)可有效降低采购成本
基于NXP i.MX RT1050主控板的恒温恒湿控制系统
管理下一代开放标准车辆电子架构
超低温冰箱BDW-86L770-Y产品特点的介绍
云母电容有什么特点_云母电容的应用领域
扼流圈是什么东西呀?作用呢?
CGDB的最基本使用方法