讲座幻灯片说CMN通过将第二个操作数的2的补码"加"到第一个操作数来进行比较,CMP通过从第一个操作数"减去"第二个操作数来进行比较.但是根据我到目前为止所学到的,处理器内的臂指令只执行加法,并通过对第二个操作数进行2的补码来实现减法(请告诉我这是否正确).所以不是CMN和CMP基本上做同样的事情???
听起来你的演讲幻灯片略有混乱.CMP的要点是,如果两个操作数相等,则结果为零,这意味着cmp a, b简单a - b.CMN进行相同的比较,但第二个操作数被否定,即e.cmn a, b意味着a - (-b)- 在两个补码算术下完全等价于a + b.