恭喜,你发布的帖子
发布于 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,表示第一个无符号数大
请填写推广理由:
分享
只看
楼主