C и Masm программа - PullRequest
       4

C и Masm программа

0 голосов
/ 05 декабря 2018

Мне нужно написать функцию funcName (int a, int b, int c) на C, которая вычисляет значение по формуле a * b-c и возвращает его.Затем мне нужно написать функцию на masm, которая вызывает эту функцию с аргументами, указанными в сегменте данных, и возвращает значение, которое первая функция возвращает после своего вызова.Функция, написанная в masm, должна вызываться в main и выводить полученное значение.Я написал программу, но когда я ее запускаю, появляется окно, в котором написано Unhandled exception at 0x0014000a in labvpd.exe: 0xC0000005: Access violation writing location 0x8d4e00eb. Что я делаю не так?

C code:

#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
...