CMP和CMN之间的区别是什么?

时间:2016-06-06 07:04:33

标签: assembly arm

讲座幻灯片说CMN通过添加'进行比较。第二个操作数与第一个操作数的2的补码,CMP通过减去'来进行比较。第一个操作数的第二个操作数。但是到目前为止我已经学到了什么,处理器内的臂指令只执行加法,并且通过对第二个操作数进行2的补码来实现减法(请告诉我这是否正确)。所以,CMN和CMP基本上没有做同样的事情吗?

1 个答案:

答案 0 :(得分:8)

听起来你的演讲幻灯片略显混乱。 CMP的要点是,如果两个操作数相等,则结果为零,这意味着cmp a, b只是a - b。 CMN进行相同的比较,但第二个操作数被否定,即e。 cmn a, b表示a - (-b) - 在两个补码算术下完全等同于a + b