回复:小小疑问,不要说我是书呆子

emil128

  • 帖子

    271
  • 精华

    10
  • 被关注

    21

论坛等级:侠圣

注册时间:2011-05-16

普通 普通 如何晋级?

发布于 2012-06-27 10:51:47

3楼

STL在执行数学运算的时候,进行运算的对象其实是累加器ACCU1和ACCU2,最大长度是32位。
具体执行时根据指令不同,决定运算的长度。
如果是整型数指令,比如 +I 那么就是ACCU1-L与ACCU2-L两个累加器的低16位看做整型数进行相加,结果放入ACCU1中。
因此无论是byte、word、dword或者INT、real在用L指令装载到累加器后,都不会影响+I指令的执行。
因此都可以进行运算,不会提示指令出错。(当然装载的数据类型不一致,计算的结果是不对的)

还有就是WORD和INT的区别,word表示0~65535而INT表示-32768~32767。
参与运算的数据(包括结果)如果在0-32767内,WORD和INT效果确实是一样的。
但如果楼主进行负数计算,定义为word就不行了。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54768条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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