所以每个在线资源都告诉我这样的事情:
cmp %eax, %ebx
jg < something >
如果eax大于ebx,将跳至
cmp $0x2, %eax
jg < something>
当eax的值为3时,它跳转到
我是否缺少某些内容,或者如果b> a而不是a> b,则执行cmp a,b-jg吗?这是否也适用于其他跳转语句?
当我们阅读类似内容时>
cmp $0x2, %eax jg < something >
我们知道所使用的汇编程序是一种反转指令操作数位置的汇编程序。这是因为Intel的语法规定目标操作数位于源操作数之前,并且很明显像$ 0x2这样的立即值永远不能成为目标!
知道事情的顺序,我们现在将您的第一个代码片段解释为
cmp ebx, eax jg < something > ;jump if EBX > EAX
和第二个代码段为
cmp eax, 2 jg < something > ;jump if EAX > 2
这也适用于其他跳转语句吗?
是。