怎么用间接寻址改变值

如题所述

间接寻址是指用指针来访问存储区的数据。指针以双字的形式存储其它存储区的地址,只能将 V 存储单元、L 存储单元或累加器寄存器(AC1、AC2、AC3)用作指针。

S7-200 SMART CPU 允许指针访问下列存储区: I、Q、V、M、S、AI、AQ、SM、T(仅限当前值)和 C(仅限当前值)。不能使用间接寻址访问单个位或访问 HC、L 或累加器存储区。

创建指针步骤

要创建指针,必须使用“移动双字”指令,将间接寻址的存储单元地址移至指针位置。;用“&”符号加上要访问的存储区地址可建立一个指针,当指令中的操作数是指针时,应该在操作数前加上“*”号。

    通过将VB200的地址(VW100的初始字节)移动到AC1创建指针。

    移动AC1中的指针引用的字值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-01-16
间接寻址是通过指针变量,间接存取它所指向的变量。如何理解上述的概念呢,举个简单的例子:int a=0;int *pa=&a;其中指针变量pa获得了a的地址,而进一步通过这个地址从而访问到了a这个整型变量存储的数字0.
接下来,我们就要通过间接寻址的方式去获得变量的值,在此之前,又要介绍一个关键的运算符

*————间接寻址运算符(也就是星号,但是这里的作用不是乘法运算符)

*的作用是用来访问指针变量所指向的变量的值,也就是去找到指针变量存储的变量地址对应的变量的值
第2个回答  2022-01-20
1). L P#2.0 // 将地址 2.0 加载到累加器1
2).T #P_2 // 将累计器1中的 2.0 放入局部变量 P_2中
3).L #P_2 // 将 局部变量P_2中的数值加载到累加器
4).L L#16 //将 累加器1的内容放入累加器2,将整数常数(32位)16 加载到累加器1
5)./I // 累加器1=累加器2/累加器1 (16位整数除法计算)
6).T #MAX_SHU //将 商存入 局部变量MAX_SHU
具体请查阅《S7-300/400 STL 语句表编程》
相似回答