反汇编个人练习:不用循环语句实现循环操作

本文探讨了在C++程序中使用jmp指令实现循环操作的方法,并详细解释了如何通过jmp指令跳转到指定代码行进行条件判断。文章还提供了解决问题的策略,帮助开发者更好地理解和应用这一技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<iostream>
using namespace std;
int main()
{
	int a=10;
	if(a<0)while(true);
	else {cout<<a<<endl;a--;}
	_asm
	{
		jmp main+1Fh;
	}

	
	return 0;
}

部分汇编语句:

3:    int main()
4:    {
00401780   push        ebp   // main=00401780,该函数指令的首地址,函数名代表该函数内第一条指令的地址

6:        if(a<0)while(true);
0040179F   cmp         dword ptr [ebp-4],0
......

10:           jmp main+1Fh;
004017D5   jmp         main+1Fh (0040179f) 

通过这样一个简单的jmp 就实现了循环操作, 不过有个问题困扰我,是否有什么办法能够让jmp 跳到指定的代码行去,比如 本程序就是要跳到执行 if(a<0)while(true)该语句执行的指令地址,后面如果知道,再来更新这里



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值