吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3928|回复: 4
收起左侧

[其他转载] [转载] for在汇编里的表示方法

[复制链接]
ieiqp 发表于 2009-12-10 20:00
jg 大于
jge 大于或者等于
for(i=0;i<9;i++);
{
printf("%d",i);
}
分析如果我们用汇编来模仿
那么首先要分配一个空间放这个i的值吧
前面的代码我就不写了
那么 就用 【ebp-4]来装这个值吧
mov [ebp-4],0
接着我们要比较一下吧,看看他是否大于9
cmp [ebp-4],9
如果大于或者等于那么我们就跳转
用的当然是jge
jeg short xxxx
如果不等于啊
那么我们要进行打印工作啊
push [ebp-4]
push “%d”
call xxxx //打印的地址
打印完后我们怎么办啊
当然是接着循环啊
所以要用到jmp yyyy 跳回去运行啊
给[ebp-4]加一
mov eax,[ebp-4]
add eax,1
mov [ebp-4],eax
接着当然是比较啊
cmp [ebp-4],9
就这么转吧
就给模拟的代码写一下啊
mov [ebp-4],0
jmp abcde
mov eax,[ebp-4]   //defddd
add eax,1
mov [ebp-4],eax
cmp [ebp-4],9 //abcde
jge yyyyy
push [ebp-4]
push “%d”
call xxxx
jmp defddd

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

最硬的石头 发表于 2009-12-11 00:52
其实直接在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循环式初始化后先跳过去进行条件判断的,如果不满足条件就退出循环,满足条件的话就进行循环体内的操作,完成一次循环体后就返回进行控制语句操作。
图片1.jpg
reckless 发表于 2009-12-11 10:29
yzhwwk 发表于 2009-12-11 11:03
abner 发表于 2009-12-11 11:21
其实我也是想说 用 INC   可能会比较省事~~~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-20 19:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表