登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:有关参数类型pointer的问题

点击:254 回复:0

 下面是网友[/URL]
sword of god的帖子:
        L   P##Addr_point                  //Addr_point的数据类型为:pointer
        LAR1
        L   O
        L    W[AR1,P#0.0]                   //取指针的第一个字内的数据块编号
        ==I
       JC    _oo1
       T      #DB_No
       OPEN        DB[#DB_No]
 _001:         L      D[AR1,P#2.0]
        LAR1
        L        W[AR1,P#0.0]
        L        W[AR1,P#2.0]
        OW
         T        #Result
       弱弱的问几个问题:
       问题1:pointer指针不是48吗?怎么能放到32位地址寄存器中?any指针也有同样的疑惑?
       问题2:第四句指令   L    W[AR1,P0.0]          
                     第九句指令   L     D[AR1,P#2.0]               这两句指令怎么理解?
        问题3:pointer和any指针存放在什么地方呢?
       希望各位大侠能帮忙解答,谢谢
下面是我的回帖:
      问题1:pointer指针不是48吗?怎么能放到32位地址寄存器中?any指针也有同样的疑惑?
      第1条指令是将pointer的起始地址送累加器1,送的不是6字节的pointer本身。
       问题2:第四句指令   L    W[AR1,P0.0]          
                     第九句指令   L     D[AR1,P#2.0]               这两句指令怎么理解?
        L    W[AR1,P0.0]送的是指针的第1个字,即数据块编号。
        L      D[AR1,P#2.0]送的是指针中的后4个字节,即数据块内的起始地址。
        问题3:pointer和any指针存放在什么地方呢?
        pointer和any指针存放在调用它的块的临时局部变量区里。见我发的日志“S7-300的V区的探索与发现”
12-06-27 08:16

工控新闻

更多新闻资讯