我对汇编语言很陌生,现在我想了解cmp
的工作原理。这是wiki的内容:
cmp arg2, arg1
这是什么意思呢?它存储在哪里?如何获得比较结果?有人可以解释吗?
最佳答案
cmp arg2, arg1
执行与sub arg2, arg1
相同的操作,不同之处在于未更改任何操作数。差异不会存储在任何地方。
但是,标志寄存器已更新,并且可以在条件跳转中使用,例如相等条件跳转(JE
),通常用作cmp
之后的下一条指令。
与其他指令相比的优势在于,您可以比较两个值而不会破坏它们中的任何一个。如果您执行了sub arg2, arg1
并且它们恰好相等,那么其中之一将为零。使用cmp
,它们都仍然存在。
关于assembly - 了解cmp指令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45898438/