32位指针存储区域交叉寻址的用途

作者:老电工时间:2020-03-10 11:14:21

有关32位指针存储区域交叉寻址的用途,32位指针与访问宽度,没有访问宽度是否应有存储器符号,AR中内容肯定于寄存器区域内间接寻址时,对AR内容的要求,或规定不同。

32位指针存储区域交叉寻址的用途

问题:交叉区域寻址表示为:访问宽度[ARX,偏移量]中的访问宽度应该多少?这里没有访问宽度不应该有存储器符号吗?

解答:

1、32位指针与访问宽度应该多少?

其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。

AR:

0000 0000 0000 0BBB BBBB BBBB BBBB BXXX

这样规定,就意味着AR的取值只能是:0.0 ——65535.7 

2、没有访问宽度不应该有存储器符号吗?

上述32位指针形式只是指明数值单元。

而在区域间寄存器间接寻址中,由于要寻址的区域也要在AR中指定,显然这时的AR中内容肯定于寄存器区域内间接寻址时,对AR内容的要求,或规定不同。

AR: 

1000 0YYY 0000 0BBB BBBB BBBB BBBB BXXX 

比较一下两种格式的不同,这里的第31bit被固定为1,同时,第24、25、26位有了可以取值的范围。这是用于指定存储区域的。对,bit24-26的取值确定了要寻址的区域,它的取值是这样定义的: 

26、25、24位 

P(外部输入输出):000

I(输入映像区)   :001 

Q(输出映像区) :010

M(位存储区) :011 

DB(数据块) :100 

DI(背景数据块):101 

L(暂存数据区,也叫局域数据) :111

如果把这样的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。

本站仅提供信息发布平台,文章仅代表作者个人观点。

猜你喜欢

首页 > plc > 西门子plc