Professional Documents
Culture Documents
026outlinel26 w9F PDF
026outlinel26 w9F PDF
026outlinel26 w9F PDF
Jump Instructions
What?
indirect jump
jmp *Operand
je Label
jb Label
jl Label
jne Label
jbe Label
jle Label
js Label
ja Label
jg Label
jns Label
jae Label //unsigned
jge Label //signed
Encoding Targets
What?
int match = 0;
if (a == b)
match = 1;
return match;
}
Converting Loops
t = loop_condition
if (!t) goto done:
loop2:
loop_body
t = loop_condition
if (t) goto loop2
done:
loop_init
t = loop_condition
if (!t) goto done:
loop3:
loop_body
loop_update
t = loop_condition
if (t) goto loop:
done:
Factorial Example
int factorial(int n) {
int result = 1;
do {
result *= n;
n = n - 1;
} while (n > 1);
return result;
}
Conditional Moves
What?
Why?
How?
cmove S,R
cmovb S,R
cmovl S,R
cmovne S,R
cmovbe S,R
cmovle S,R
cmovs S,R
cmova S,R
cmovg S,R
cmovns S,R
cmovae S,R //unsigned
cmovge S,R //signed
Example