堆区中字符串压栈顺序

本文探讨了栈中和堆中字符串处理的区别,重点分析了堆中如何将字符串压入,通过实例解析了相关操作过程。
摘要由CSDN通过智能技术生成


对于栈中压入字符串请看:

http://blog.csdn.net/zcc1414/article/details/9668907

对于堆中压入字符串 也就是

mov 堆,数据


下面为例子:

int main()
{
	__asm
	{
		push ebp
		mov ebp,esp
		xor ebx,ebx
		push ebx
		//尾部要加上 '\0' 也就是 0x00
		//如果是PUSH 的话 留整齐的4字节在后面
		//user32.dll   字符串转换为16进制为:
		//75,73,65,72,33,32,2E,64,6C,6C

		mov byte ptr [esp],0x6C	    //第一个"l"
		mov byte ptr [esp+1],0x6C	//第二个"l"
		push 0x642E3233     //"32.d"
		push 0x72657375		//"user"

		//可以看得出  mov 堆,数据  
		//这种方式是  取字符串前多少字节  然后逆序mov入堆中  所以最后要mov入 空

		//push 数据  这种方式将整行字符串倒叙压入  

		mov eax,esp
		push eax
		//mov ebx,0x7C801D77 xp sp2
		mov ebx,0x7C801D7B  //xp sp3
		call ebx		//LoadLibrary
		sub esp,0x80
		mov dword ptr [ebp-34h],0xBECAE1CC
		mov byte ptr [ebp-30h],0x00
		lea esi,[ebp-34h]  //提示
		
		
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值