step7db块寻址_step7寻址方式

西门子

的间接寻址方式计有两大类型:

存储器间接寻址和寄存器间接寻址。

【存储器间接寻址】

存储器间接寻址的地址给定格式是:地址标识符

+

指针。指针所指示

存储单元中所包含的数值,

就是地址的确切数值单元。

存储器间接寻址具有两个指针格式:

单字和双字。

单字指针是一个

16bit

的结构,从

0-15bit

,指示一个从

0-65535

的数值,这

个数值就是被寻址的存储区域的编号。

双字指针是一个

32bit

的结构,从

0-2bit

,共三位,

按照

8

进制指示被寻址的位编号,

也就是

0-7

而从

3-18bit

16

位,

指示一个从

0-65535

的数值,这个数值就是被寻址的字节编号。

指针可以存放在

M

DI

DB

L

区域中,也

就是说,可以用这些区域的内容来做指针。

单字指针和双字指针在使用上有很大区别。下

面举例说明:

L DW#16#35 //

32

16

进制数

35

存入

ACC1 T MD2 //

这个值再存入

MD2

这是个

32

位的位存储区域

L

+10

//

16

位整数

10

存入

ACC1

32

16

进制数

35

自动

移动到

ACC2

T

MW100

//

这个值再存入

MW100

,这是个

16

位的位存储区域

OPN

DBW[MW100] //

打开

DBW10

这里的

[MW100]

就是个单字指针,

存放指针的区域是

M

区,

MW100

中的值

10

,就是指针间接指定的地址,它是个

16

位的值!

-------- L L#+10 //

32

位形式,把

10

放入

ACC1

,此时,

ACC2

中的内容为:

16

位整数

10 T MD104 //

这个值再

存入

MD104

这是个

32

位的位存储区域

A I[MD104] //

I1.2

进行与逻辑操作!

=DIX[MD2]

//

赋值背景数据位

DIX6.5

--------

A

DB[MW100].DBX[MD2]

//

读入

DB10.DBX6.5

数据位

状态

=Q[MD2] //

赋值给

Q6.5 -------- A DB[MW100].DBX[MD2] //

读入

DB10.DBX6.5

数据位

=Q[MW100]

//

Q10

---------------------------------------------------------------------------------------------------

从上面系列举

例我们至少看出来一点:

单字指针只应用在地址标识符是非位的情况下。的确,单字指针

前面描述过,它确定的数值是

0-65535

,而对于

byte.bit

这种具体位结构来说,只能用双字

指针。这是它们的第一个区别,单字指针的另外一个限制就是,它只能对

T

C

DB

FC

FB

进行寻址,通俗地说,单字指针只可以用来指代这些存储区域的编号。

相对于单字

指针,

双字指针就没有这样的限制,

它不仅可以对位地址进行寻址,

还可以对

BYTE

WORD

DWORD

寻址,并且没有区域的限制。不过,有得必有失,在对非位的区域进行寻址时,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值