0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_78858299 来源:SIEMENS之家 作者: WeiChatNumberOne 2023-01-30 15:17 次阅读

关于间接寻址分为存储器间接寻址和地址寄存器间接寻址,本文主要针对地址寄存器间接寻址进行详细讲解。

一、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 的取值确定了要寻址的区域,它的取值是这样定义的:

1675062989(1).png

如果我们把这样的 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 的格式的程序**

程序:

1675063012(1).png

在程序中使用SLD进行地址偏移,是因为地址是从第88个字节地址开始,如有其他不理解的,可以直接通过微信公众平台,联系小编。

免责声明:本文系网络转载,版权归原作者所有。但因转载众多,无法确认真正原始作者,本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将立即删除内容!本文内容为原作者观点,并不代表本公众号赞同其观点和对其真实性负责。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117719
  • 存储器
    +关注

    关注

    38

    文章

    7148

    浏览量

    161986
  • Ar
    Ar
    +关注

    关注

    24

    文章

    4963

    浏览量

    167376
收藏 人收藏

    评论

    相关推荐

    什么是单片机寻址方式?寻址方式有哪些?

    的内存单元的地址放在寄存器中,指令中只给出该寄存器。执行指令时,首先根据寄存器的内容,找到所需要的操作数地址,再由该
    发表于 01-13 14:54

    ARM体系结构之寄存器详解

    较高的寻址方式。ADD R0,R1,R2;该指令的执行效果是将寄存器R1和R2的内容相加,其结果存放在寄存器R0中。寄存器间接
    发表于 08-25 15:23

    ATtiny2313通用寄存器详解

    R26..R31 除了用作通用寄存器外,还可以作为数据间接寻址用的地址指针。这三个间接寻址
    发表于 11-04 07:21

    寄存器间接寻址和相对寻址的区别是什么

    ,指令可以对该地址指示的单元中的数据进行操作。寄存器间接寻址只能对寄存器R0、R1
    发表于 01-20 15:33

    间接寻址地址寄存器指令

    间接寻址地址寄存器指令
    发表于 08-12 11:59 18次下载

    寄存器寻址方式

    寄存器寻址方式   寄存器寻址是对由指令选定的工作寄存器(R0--R7)进行读/写
    发表于 03-14 15:29 2556次阅读

    寄存器间接寻址方式

    寄存器间接寻址方式   寄存器间接寻址是将指定的
    发表于 03-14 15:29 4829次阅读

    变址间接寻址方式

    变址间接寻址方式   基址寄存器加变址寄存器间接寻址方式,是MCS-51指令集所独有
    发表于 03-14 15:30 4905次阅读

    HT MCU间接寻址的应用

    Holtek 单片机有一个间接寻址寄存器R0([00H])(有的单片机有两个间接寻址寄存器 R0
    发表于 01-18 16:06 27次下载

    51单片机特殊功能寄存器中的字节寻址和位寻址表详细说明

    MCS-51系列单片机有21个可寻址的专用寄存器,其中有11个专用寄存器是可以位寻址的。下面把各寄存器的字节
    发表于 07-19 17:38 3次下载
    51单片机特殊功能<b class='flag-5'>寄存器</b>中的字节<b class='flag-5'>寻址</b>和位<b class='flag-5'>寻址</b>表详细说明

    plc间接寻址方式

    间接寻址是指使用地址指针来存取存储器中的数据。使用前,首先将数据所在单元的内存地址放入地址指针寄存器
    发表于 10-24 08:47 5231次阅读

    plc的寻址方式:立即寻址、直接寻址间接寻址

    我们都知道西门子200plc有三种寻址方式:立即寻址、直接寻址间接寻址;这里主要给大家区分下直接和间接
    的头像 发表于 09-25 11:50 2.1w次阅读
    plc的<b class='flag-5'>寻址</b>方式:立即<b class='flag-5'>寻址</b>、直接<b class='flag-5'>寻址</b>、<b class='flag-5'>间接</b><b class='flag-5'>寻址</b>

    S7-300间接寻址中的寄存器间接寻址详解

    寄存器间接寻址是通过使用CPU内部集成的两个地址寄存器AR1和AR2存储地址指针来实现的
    的头像 发表于 11-20 17:38 9238次阅读
    S7-300<b class='flag-5'>间接</b><b class='flag-5'>寻址</b>中的<b class='flag-5'>寄存器</b><b class='flag-5'>间接</b><b class='flag-5'>寻址</b><b class='flag-5'>详解</b>

    plc间接寻址有什么用?

    介绍如何在PLC程序中实现间接寻址。 一、PLC间接寻址的定义和原理 PLC间接寻址的概念很简单
    的头像 发表于 09-15 14:59 1030次阅读

    什么是PLC直接寻址间接寻址

    什么是PLC直接寻址间接寻址?  PLC直接寻址间接寻址是在程序设计中经常使用的两种方法。直
    的头像 发表于 09-15 14:59 1659次阅读