地址寄存器的用法

如图所示,蓝色区域的指令中为什么将累加器1的低字传送给地址寄存器AR1或AR2之前,都要左移5位的处理????

图片说明:

地址寄存器的用法   

最佳答案

1、首先要熟悉32位指针的格式:
  AR:  0000 0000 0000 0BBB BBBB BBBB BBBB BXXX 。
 其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。 例如:
AR=D4(hex)=0000 0000 0000 0000 0000 0000 1101 0100(b),实际上就是等于26.4。
2、都要左移5位的处理?
例如,0000 0000 0000 0000 0000 0000 0000 0100(b)如果要形成地址常数4.0,如上所述,需要左移3位为0000 0000 0000 0000 0000 0000 0010 0000(b),即4.0。
而程序中都要左移5位的处理?因为程序中是对于双字寻址。首先要清楚:
、字节排序为DBB0,DBB1,DBB2,…….。
、字排序为DBW0,DBW2,DBW4,…….。
、双字排序为DBD0,DBD4,DBD8,…….。
程序中是对双字寻址,L   DBD[AR2,P#0.0],T DBD[AR1,P#0.0]..。根据上述的双字排序直接左移5位即形成双字排序的地址,偏移量为P#0.0。
如果左移3位也可以,   DBD[AR2,P#0.0],T DBD[AR1,P#0.0]与下述左移3位后,偏移量为P#4.0指令等价:
 DBD[AR2,P#4.0],T DBD[AR1,P#4.0].。
3、有关指针寻址:
见《关于S7-300和S7-400指针寻址的说明与例程(更新版)》下载:
http://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText=F0215
详见《step7编程之地址概念详解》连接:
http://ishare.iask.sina.com.cn/f/22746895.html
http://www.gongkong365.com/bbs/job.php?action=download&aid=96

提问者对于答案的评价:
学习

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc235606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午3:13
下一篇 2018年12月1日 下午3:13

相关推荐