最佳答案
if()
语句的意思是“如果条件不成立则跳过此语句”。
如果条件为 true,则希望执行进入 if
主体,如果条件为 false,则希望执行跳过 if
主体。
因此,编译 if
的明显/字面方式是在相反条件下使用 jcc,例如 jnl
。 (对于那些高度相关的 if/else block ,例如减法和条件否定,优化的代码肯定可以做得更好。)
如果你想使用jl
,你必须将if
-body放在行外,也许在ret
之后函数的末尾,然后从它跳回来。
关于c - 为什么汇编中 if 语句中的条件是逻辑“NOT”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52368539/