汇编子程量如何设置像JLE这样的分支的标志?哪个寄存器必须更大才能跳跃



如果我们做类似的事情:

subq %rbx, rax
jle somewhere

如果RBX小于或等于RAX或RBX,这是否意味着跳跃大于或等于RAX?

您可能会被AT& t语法所困惑。
在英特尔语法中,这两个说明看起来像

sub rax, rbx      ; subq %rbx, rax
jle somewhere     ; Jump if LESS-OR-EQUAL

英特尔符号的一个主要优点是,您可以轻松地得出比较操作员。在这种情况下,这看起来像

IF rax <= rbx     ; IF rax LESS-OR-EQUAL rbx    
THEN JUMP target  ; DO THE JUMP IF YES

这可以用作经验法则。
因此,如果以前的条件为 TRUE,则有条件的跳跃Jcc

最新更新