-
-
[旧帖]
[求助]过程参数和堆栈参数的关系
0.00雪花
-
2010-5-4 13:31
1516
-
[旧帖] [求助]过程参数和堆栈参数的关系
0.00雪花
C语言程序调用汇编过程,并向其传送参数
test.c:
#include<stdio.h>
extern int __stdcall myadd(int x, int y);
int main(void)
{
int a=1, b=2,c=0;
c=myadd(a,b);
printf("c=%d\n", c);
return 0;
}
1. 通过
过程参数获得输入参数
myadd.asm
TITLE get the sum of the two numbers
.386
.MODEL FLAT, STDCALL
OPTION CASEMAP:NONE
.CODE
myadd PROC x:DWORD, y:DWORD
MOV EAX, x
ADD EAX, y
RET
myadd ENDP
END
2. 通过
堆栈获得输入参数
TITLE get the sum of the two numbers
.386
.MODEL FLAT, STDCALL
OPTION CASEMAP:NONE
.CODE
myadd PROC USES ESI EDI x:DWORD, y:DWORD
MOV EAX, [EBP+8]
ADD EAX, [EBP+12]
RET
myadd ENDP
END
两种方法都对,但x与[EBP+8] , y与[EBP+12], 是什么关系?
[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界