回复:寻址指令谁明白给讲讲

blue blue

  • 帖子

    247
  • 精华

    1
  • 被关注

    1

论坛等级:游士

注册时间:2004-03-19

普通 普通 如何晋级?

发布于 2006-02-20 09:51:25

0楼

1、直接寻址就是利用绝对地址或者符号寻址,是最基本的寻址方式。
2、间接寻址包括存储器和寄存器间接寻址。其中存储器最常用的是指针寻址,指针寻址就是赋予存储器一个指针值,可以方便的在程序运行中实现变址。

a、指针间接寻址例子
L P#8.7 把指针值装载到累加器1
T I[MD2] 把指针值传送到MD2
A I[MD2] 查询I8.7的信号状态
= Q[MD2] 给输出位Q8.7赋值

b、寄存器间接寻址是利用地址寄存器(AR1、AR2)来实现变址。

分为内部寻址,如下,指针不包含指示存储区域。
L P#8.7 把指针值装载到累加器1
LAR1 把指针从累加器1装载到AR1
A I[AR1,P#0.0] 查询I8.7的信号状态
= Q[AR1,P#1.1] 给输出位Q10.0赋值

还有交叉寻址
指针中包含指示存储区域的信息(例子中为 I 和 Q)。
L P#I8.7 把指针值及存储区域标识装载到累加器1
LAR1 把存储区域I 和地址8.7装载到AR1
L P#Q8.7 把指针值和地址标识符装载到累加器1
LAR2 把存储区域Q和地址8.7装载到AR2
A [AR1,P#0.0] 查询输入位I8.7的信号状态
= [AR2,P#1.1] 给输出位Q10.0赋值
综上,直接寻址就是简单的寻址方式,间接寻址是高级寻址方式,可以方便更改地址。
举例,我想将一个模拟量数值每隔一段时间写入DB中的字里面,又不能覆盖,这就需要间接寻址,第一次写入DBW0,第二次写入DBW2中,依此类推...间接寻址可以方便的实现,只要更改指针的数值即可,具体需要你在运用中灵活使用。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54757条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。