回复:S7-200smart中,比较指令的分享

已锁定

yanxiao

版主

  • 帖子

    12202
  • 精华

    47
  • 被关注

    189

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2020-05-22 19:12:40

16楼

两个数进行比较,通常是将两数相减,看结果。无符号数相减,根据是否有借位,就可以判断两数的大小。但是,200没有提供借位,只有一个溢出位,而且是按有符号数进行解释,直接用不上。

根据有符号数最高位(符号位)的变化,总结如下:

1、如果两个数同号,相减的结果为正值,则没有出现借位的情况,第一个数大,无论是按有符号解释,还是无符号解释,结论都是对的。

2、如果两个数异号,由于有符号的负数占据无符号数的高半个空间,如果第一个数是负数,就是大数;

3、相等为特殊情况。


LD     Always_On

MOVD   VD0, AC0

XORD   VD4, AC0                    // 异或方式产生异号/同号

SLD    AC0, 1                      // 最高的符号位移进sm1.1中

LD     Overflow_Illegal

=      M0.0                        // M0.0=1,表示两个数异号

LD     Always_On

MOVD   VD0, AC0

-D     VD4, AC0                    // SM1.0=1,表示两数相等,特例

LD     Neg_Result

=      M0.1                        // M0.1=表示结果为负

// 比较方式

LDN    M0.0                        // 同号

AN     M0.1                        // 结果为正

LD     M0.0                        // 异号

AD<    VD0, 0                      // 第一数是负值

OLD

=      M0.2                        // M0.2=1,表示第一个无符号数大


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9135条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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