结构体作为参数的反汇编
Posted zhuh102
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构体作为参数的反汇编相关的知识,希望对你有一定的参考价值。
1:函数传参数的方式是将数据进行拷贝传递的。
2:基本数据类型编译器一般是通过PUSH指令来将参数入栈的,但是当传入的参数是结构体时,会采取,函数堆栈初始化的方式进行参数的拷贝
PUST EBP
MOVE EBP,ESP
SUP ESP,40H
MOV ESI,[EBP-40]
MOV EAX,0CCCCCCCH
MOV ECX,16H; 需要初始化的堆栈的长度是40H也就是56个字节的长度,在32位的系统中,ESP的移动单位长度是4字节,所以需要16次初始化操作
REP STOS DOWRD PTR[ESI]
3:当传入的参数是结构体是【且宽度比较大的时候】,参数的传递方式会采用类似初始化堆栈的方式
SUB ESP 18H
MOV ECX,6H
MOV ESI,6H
REP STOS DWORD PTR [ESI]
4:结构体变量一般都定义为全局变量
以上是关于结构体作为参数的反汇编的主要内容,如果未能解决你的问题,请参考以下文章