我需要在C上编写一个函数funcName (int a, int b, int c)
,该函数使用公式a * b-c
计算值并将其返回。然后,我需要在masm上编写一个函数,该函数使用在数据段中指定的参数调用此函数,并返回第一个函数在其调用后返回的值。必须在main中调用以masm编写的函数并输出结果值。我编写了一个程序,但是运行该程序时,会弹出一个窗口,其中写有该程序Unhandled exception at 0x0014000a in labvpd.exe: 0xC0000005: Access violation writing location 0x8d4e00eb.
我在做什么错了?
C代码:
#include <stdio.h>
#include <stdlib.h>
extern "C"
int __cdecl funcName(int a, int b, int c);
extern "C"
int FUN();
int main()
{
printf("%s", "Result: ");
printf("%d", FUN());
scanf("%d");
return 0;
}
extern "C"
int __cdecl funcName(int a, int b, int c){
int result = a*b-c;
return result;
}
MASM代码:
.686
.MODEL C, FLAT
.STACK
.DATA
a dw 10
b dw 20
d dw 30
.CODE
EXTRN funcName : proc
FUN PROC
push d
push b
push a
call funcName
ret
FUN ENDP
END