我不理解JG/JNLE/JL/JNGECMP之后的说明.
例如,如果我有:
CMP al,dl
jg label1
Run Code Online (Sandbox Code Playgroud)
当al=101; dl =200.
我们问jg什么?是al>dl吗?还是al-dl>0?
在下一个代码上相同的prolbem:
test al,dl
jg label1
Run Code Online (Sandbox Code Playgroud)
我不明白我们比较什么,以及我们问什么" jg".
换句话说,我不明白我们何时会跳转到label1,何时不会.
谢谢.
使用AT&T汇编语法,我试图了解如何testl在汇编代码中使用.特别:
testl %edx, %edx
jle .L3
Run Code Online (Sandbox Code Playgroud)
我知道设置条件标志testl的位数and是否相同,但如果不比较两个值,我怎么能解释'如果小于或等于'则跳转?
是否有可能在x86汇编语言中模仿if-statment(使用masm语法)?我想在x86汇编语言中做这样的事情,但我不确定我应该使用哪个运算符来模仿if-else语句.我应该使用jl指令,cmp指令还是其他指令?
int i = 2;
int j = 3;
if(i > j){
i = 1;
}
else{
i = 4;
}
Run Code Online (Sandbox Code Playgroud)