01 指令讲解
1.创建指针
使用间接寻址就必须先创建指针,那么指针怎么创建呢?使用mov_dw指令把指针地址存放到out输出的变量,mov_dw不是普通的32位数传送指令吗,怎么就是指针了呢?
其实当mov_dw指令in引脚使用&vbxxx、&ibxxx、&mbxxx、&qbxxx时为创建指针的格式。如图1所示,&vb0为创建指针指向vb0,其中&为创建指针的符号,vb为v存储区的字节,0代表指向的地址是从字节0开始的,指针地址放在out输出变量地址中,vd100为创建指针存放的指针地址。
图1
2.引用指针
引用指针使用字符“*”带表示引用指针,如图2所示,*vd100代表引用指针,把vd0的数据传送到vd200中。
图2
那么如何判断指向的地址使用的是字节、字、双字呢?其实和指令有关系。可以通过数据类型判断,如图3所示,把光标放在指令块处不动2s左右,会弹出一个指令块引脚指令使用的数据类型。
这里可以看到in:dword,输入为dword的32位数据类型,也就是双字,那么这时候引用的是vd0,指针没有偏移过,还是指向vb0地址起始的,指令使用的是双字,所以引用的是vd0地址中的数据,把vd0赋值给vd200。
图3
3. 指针偏移
初学者使用指针时,对于指针偏移的理解最容易乱的。指针偏移是通过对指针存放的地址进行运算得到一个新的指针地址。
如图4所示,按下m0.0把指针指向vb0的指针地址放在vd100中,如果这时候没有接通i0.0,那么程序段3就会把vd0的数据传送给vd200,如果接通了i0.0,那么程序段3就会把vd4的数据传送给vd200。
指针地址加多少就是向上偏移多少,也可以减去一个偏移量,一般字节偏移1,字偏移2,双字偏移4。如图4中的程序段2,指针地址vd100+4=vd100,程序段中最开始的创建的指针是指向vb0,指针+4以后,指针指向偏移指向vb4。
图4
02 案例应用
案例1
如表1所示,按下m0.0的按钮,把赋值数据传送给赋值地址,例如第一次把vb0传送给vb100,当第四次以后,按下m0.0按钮,指针重新指向vb0,重新开始。
次数 赋值数据 赋值地址
1 vb0 vb100
2 vb1 vb100
3 vb2 vb100
4 vb3 vb100
表1
程序编写如图5所示,字节与字节之间地址相差1,编写vd1000+1=vd1000的运算程序,每次向上偏移1。
图5
案例2
如表2所示,按下m0.0的按钮,把赋值数据传送给赋值地址,例如第一次把vw0传送给vw100,当第四次以后,按下m0.0按钮,指针重新指向vb0,重新开始。
次数 赋值数据 赋值地址
1 vw0 vbw00
2 vb2 vw100
3 vb4 vw100
4 vb6 vw100
表2
程序编写如图6所示,字与字之间地址相差2,编写vd1000+2=vd1000的运算程序,每次向上偏移2。
图6
案例3
如表3所示,按下m0.0的按钮,把赋值数据传送给赋值地址,例如第一次把vd0传送给vd100,当第四次以后,按下m0.0按钮,指针重新指向vb0,重新开始。
次数 赋值数据 赋值地址
1 vd0 vd100
2 vd4 vd100
3 vd8 vd100
4 vd12 vd100
表3
程序编写如图7所示,双字与双字之间地址相差4,编写vd1000+4=vd1000的运算程序,每次向上偏移4。
图7
案例4
如表4所示,按下m0.0的按钮,把赋值数据传送给赋值地址,例如第一次把vd0传送给vd100,当第四次以后,按下m0.0按钮,赋值地址清零,然后下一次重新开始赋值。
次数 赋值数据 赋值地址
1 vd0 vd100
2 vd4 vd108
3 vd8 vd116
4 vd12 vd124
表4
程序编写如图8所示,不管是输入和输出都可以通过指针做间接寻址,通过地址偏移可以给不通的地址赋值。
图8
03 总结
本文章举例了简单的in和out的间接寻址,间接寻址的使用方式还有很多,可以用在形参子程序中使用,例如求多个数值的平均值,利用for循环和间接寻址就可以轻松解决这个需要多次运算的问题,现在西门子200smart v2.8的cpu支持平均值指令,可以不需要自己写程序。
如何画技术架构图
谷歌云平台发布Memystorore Beta测试 提供完全可管理的内存内数据存储
AI芯片融资哪家强?
大联大控股旗下世平成立物联网展示中心,打造亚洲级物联网生态圈
巩固4K市场,索尼VPL-VW768激光4K家庭影院投影机全新发布
西门子S7-200smart间接寻址使用方法简析
变频调速技术是怎样发展起来的?为什么常缩写成VVVF?
三星和联发科成为2020年高通5G芯片的主要竞争对手
开关电源中如何选择合适的电感?
华硕推出一款名为“无边框套装”的新产品,高端游戏玩家的福音!
汽车音响改装的基本知识
虹科直播精彩回顾 | 太赫兹TDS技术的工业测厚与表征应用
DeepMind用新方法让智能体在复杂的非对称博弈里找到纳什均衡
三百左右的蓝牙耳机哪款好?四款平价蓝牙耳机测评
当智能配电网发生故障时是如何进行自愈控制的?
MacBee能否取得物联网产业的入场券
意法半导体MCU添新军 力拼市占第一
微软宣布提高 Microsoft 365 上传文件大小限制:100GB 增加到 250GB
“给每个梦想一个机会”源自于节目赞助方拉卡拉所创立的“公益梦想基金”诚意之作!——拉卡拉跨界手环
超级芯片GH200发布,AI算力是H100的两倍