讲座幻灯片说CMN通过添加'进行比较。第二个操作数与第一个操作数的2的补码,CMP通过减去'来进行比较。第一个操作数的第二个操作数。但是到目前为止我已经学到了什么,处理器内的臂指令只执行加法,并且通过对第二个操作数进行2的补码来实现减法(请告诉我这是否正确)。所以,CMN和CMP基本上没有做同样的事情吗?
答案 0 :(得分:8)
听起来你的演讲幻灯片略显混乱。 CMP的要点是,如果两个操作数相等,则结果为零,这意味着cmp a, b
只是a - b
。 CMN进行相同的比较,但第二个操作数被否定,即e。 cmn a, b
表示a - (-b)
- 在两个补码算术下完全等同于a + b
。