[转载] for在汇编里的表示方法
jg 大于jge 大于或者等于
for(i=0;i<9;i++);
{
printf("%d",i);
}
分析如果我们用汇编来模仿
那么首先要分配一个空间放这个i的值吧
前面的代码我就不写了
那么 就用 【ebp-4]来装这个值吧
mov ,0
接着我们要比较一下吧,看看他是否大于9
cmp ,9
如果大于或者等于那么我们就跳转
用的当然是jge
jeg short xxxx
如果不等于啊
那么我们要进行打印工作啊
push
push “%d”
call xxxx //打印的地址
打印完后我们怎么办啊
当然是接着循环啊
所以要用到jmp yyyy 跳回去运行啊
给加一
mov eax,
add eax,1
mov ,eax
接着当然是比较啊
cmp ,9
就这么转吧
就给模拟的代码写一下啊
mov ,0
jmp abcde
mov eax, //defddd
add eax,1
mov ,eax
cmp ,9 //abcde
jge yyyyy
push
push “%d”
call xxxx
jmp defddd 其实直接在IDA里看更方便,更容易理解
#include <iostream>
using namespace std;
int main (void)
{
int i;
int sum = 0;
for(i = 0; i <= 100; i++)
{
sum = sum + 1;
}
return 0;
}
对于for循环式初始化后先跳过去进行条件判断的,如果不满足条件就退出循环,满足条件的话就进行循环体内的操作,完成一次循环体后就返回进行控制语句操作。 很好,学习了! 谢谢 楼主 学习了 不错 其实我也是想说 用 INC 可能会比较省事~~~
页:
[1]