回复:除法运算求解析 菜鸟跪求解释楼主 帮忙啊谢谢

老学童

  • 帖子

    768
  • 精华

    32
  • 被关注

    65

论坛等级:奇侠

注册时间:2011-06-22

普通 普通 如何晋级?

发布于 2013-11-14 16:37:08

5楼

楼主,你的问题不是“除法运算”,我相信你用脚指头也算不错!
关键的问题是你对此段程序不理解其作用,我就帮你分析一下吧!
1. 程序作用:位寻址中计算位地址
2. 方法:
1) 这里的18是总‘位’数,可能其中一位被某个专用的信号占用,因此在你的程序中要减去1位;
2) 先要计算字节地址,每个字节8位,因此,除以8后得到字节地址,即P#xxx.y中的xxx;
3) S7所有的计算都是累加器中进行的,INT型为2个字节,计算后商存在累加器的低字(低字节和低低字节),余数放在高字(高字节和高低字节),在你的程序17/2 = 00000000 00000001 00000000 00000010,前面的16位中的1是余数(00000000 00000001 ),其实就是程序要寻址的‘位’,后面是商,也即是几个字节;
4)SRD16是将整个累加器右移16位,累加器中就变成了00000000 00000000 00000000 00000001,只剩下‘位’地址,后面没有用到这里‘商’,可见你的程序中这个字节数‘2’是没有用的;
5)134是距离数据区首地址(例如:P#0.0)的偏置尺寸,即要寻址的字节在P#134.0开始的字节;
6)将134装入累加器1后,经过SLW 3(累加器1低字左移3位)就得到了32位区域指针P#134.0 (
00000000 00000000 00000100 00110000),这里不是‘1072’的含义(如果不懂,去学习间接寻址);
7) 与#BIT1(这里已经不是‘1’的概念了,而是P#0.1,如果不懂,去学习间接寻址)进行‘字或’计算后,就等于P#134.1的位地址。
年轻人,打好基础非常重要,加油啊!
人的生命似洪水在奔流,不遇着岛屿、暗礁,难以激起美丽的浪花。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54713条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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