存储器与寄存器间接寻址的区别和应用场合是什么?
刘玉蓉
发布于2014-10-11 17:13
7
0
标签:
就这两个问题:
1、什么情况下用存储器寻址?
2、什么情况下用寄存器间接寻址?
看编程资料(间接寻址资料)未能体会两种方式的功能与区别,由于编程没有注意这两种存储功能进行区分,想知道什么情况下用存储器去间接寻址?什么情况下拿寄存器去间接寻址?
问题补充:
就简单的举个例行吗?简单的例子,实用的例子。
佳答案
直接寻址: 使用直接寻址,存储单元地址可以直接包含在指令中,也就是说,地址标识符指明了指令所要处理数值的地址。
符号寻址: 在控制程序中,可以进行绝对地址寻址(比如:I 1.0)或进行符号地址寻址(
比如“开始信号”)。符号地址是使用名称来代替绝对地址。
使用有意义的名称使程序的可读性增强。不过,在使用符号寻址时,要注意区分局部符号(在块的声明部分)和全局符号(符号表)。
间接寻址: 使用间接寻址,可以寻址那些只有在程序运行时才确定其地址的地址标识符。例如,通过间接寻址,可以对程序的一些部分进行反复扫描(循环编程),由此,每次扫描所用到的地址被赋予不同的地址数值。
关于间接寻址,要注意区分以下两种情况:
存储器间接寻址: 寻址的地址指针位于用户储存器存储单元里(比如MD30)。使用存储器间接寻址,也可以为位于保存寻址地址标识符指针的存储器中的变量赋予符号化名称。
寄存器间接寻址:在访问之前,要将指向寻址地址的指针装载到其中一 个S7处理器地址寄存器(AR1或AR2)中去。
警告:用于使用间接寻址时,只有在程序运行期间才计算地址,所以,就会有这样的潜在的危险性,即存储器被意外覆盖,进而导致PLC的意外动作。
参考资料:西门子300/400高级教程