讲座幻灯片说CMN通过将第二个操作数的2的补码"加"到第一个操作数来进行比较,CMP通过从第一个操作数"减去"第二个操作数来进行比较.但是根据我到目前为止所学到的,处理器内的臂指令只执行加法,并通过对第二个操作数进行2的补码来实现减法(请告诉我这是否正确).所以不是CMN和CMP基本上做同样的事情???
我有这个循环语句,我将使用类似C的语法表达(C,C++,Java,JavaScript,PHP等都使用类似的语法):
while (c != 'o' || c != 'x') {
c = getANewValue();
}
Run Code Online (Sandbox Code Playgroud)
我想让它一直运行,直到我得到一个'o'或'x',但它永远不会退出,即使c是'o'或'x'.为什么不?
我也尝试过使用if:
if (c != 'o' || c != 'x') {
// Show an error saying it must be either 'o' or 'x'
}
Run Code Online (Sandbox Code Playgroud)
但这也总是显示错误信息,即使c是'o'或'x'.为什么?