回复:详解西门子间接寻址

醉心

  • 帖子

    139
  • 精华

    0
  • 被关注

    5

论坛等级:新手

注册时间:2008-03-26

普通 普通 如何晋级?

发布于 2008-07-20 21:18:53

0楼

从上面系列举例我们至少看出来一点:
  单字指针只应用在地址标识符是非位的情况下。的确,单字指针前面描述过,它确定的数值是0-65535,而对于byte.bit这种具体位结构来说,只能用双字指针。这是它们的第一个区别,单字指针的另外一个限制就是,它只能对T、C、DB、FC和FB进行寻址,通俗地说,单字指针只可以用来指代这些存储区域的编号。
  相对于单字指针,双字指针就没有这样的限制,它不仅可以对位地址进行寻址,还可以对BYTE、WORD、DWORD寻址,并且没有区域的限制。不过,有得必有失,在对非位的区域进行寻址时,必须确保其0-2bit为全0!
  总结一下:
  单字指针的存储器间接寻址只能用在地址标识符是非位的场合;双字指针由于有位格式存在,所以对地址标识符没有限制。也正是由于双字指针是一个具有位的指针,因此,当对字节、字或者双字存储区地址进行寻址时,必须确保双字指针的内容是8或者8的倍数。
  现在,我们来分析一下上述例子中的A I[MD104] 为什么最后是对I1.2进行与逻辑操作。
  通过L L#+10 ,我们知道存放在MD104中的值应该是:
  MD104:0000 0000 0000 0000 0000 0000 0000 1010
  当作为双字指针时,就应该按照3-18bit指定byte,0-2bit指定bit来确定最终指令要操作的地址,因此:
  0000 0000 0000 0000 0000 0000 0000 1010 = 1.2
为全国钢铁同行交流提供平台群22295046
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。