求助:SUB_I减整数命令不能实现减法运算功能 点击:714 | 回复:2



leedow

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 23回
  • 年度积分:0
  • 历史总积分:91
  • 注册:2018年3月06日
发表于:2018-03-08 11:26:46
楼主

如下代码, 很奇怪, 不管我怎么写,减整数运算都不能实现数值按预期减小的功能。

比以面这段代码,按理运行时 VW2 的值应该永远比 VW0的值小10才对,可是实际上

运行两个值居然是一样的。

network 1

LD     First_Scan_On:SM0.1

MOVW   100, VW0

network 2

LD     CPU_输入0:I0.0

+I     10, VW0

AENO

MOVW   VW0, VW2

-I     +10, VW2


但我把最后一行改成 :(+I   10 ,VW2) 后(见以下代码),运行结果又可以实现 VW2 的值一直比VW0的值大10的功能。请教这到底怎么回事。为什么减法运算会无效呢。

network 1

LD     First_Scan_On:SM0.1

MOVW   100, VW0

network 2

LD     CPU_输入0:I0.0

+I     10, VW0

AENO

MOVW   VW0, VW2

+I     +10, VW2





leedow

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 23回
  • 年度积分:0
  • 历史总积分:91
  • 注册:2018年3月06日
发表于:2018-03-08 11:39:02
1楼

晕,搞半天还是搞不明白为什么减法运算无效。算了,先用加法运算加负数来做减法运算了。

狼牙精神

  • 精华:6帖
  • 求助:5帖
  • 帖子:468帖 | 5379回
  • 年度积分:119
  • 历史总积分:62906
  • 注册:2020年3月27日
发表于:2018-03-08 14:18:32
2楼

可以改一下程序慢慢看一下(I0.0加个上升沿)

network 1

LD     First_Scan_On:SM0.1

MOVW   100, VW0

network 2

LD     CPU_输入0:I0.0

EU

+I     10, VW0

AENO

MOVW   VW0, VW2

-I     +10, VW2



热门招聘
相关主题

官方公众号

智造工程师