Ciao a tutti,
devo realizzare un programma in C che richiama una procedura assembler.
Per iniziare ho scritto un semlice programma in C che passa due int alla procedura e dovrebbe ritornare la somma.
Ma ho diversi dubbi:
-con cosa compilo e linko? e come??(sono sotto windows e uso gcc per C e MASM per assembler)
-è corretto come definisco la procedura?
Procedura in asm
Codice:
PUBLIC _sum
.model SMALL
.stack
.data
.code
.startup
.exit
_sum PROC neAR
push bp
MOV BP,SP
MOV AX,[BP+4]
MOV BX,[BP+6]
ADD AX,BX
pop bp
RET
_sum ENDP
END
Programma in c
Codice:
#include <stdio.h>
extern int sum (int ,int);
void main()
{
int n1,n2;
printf("Inserisci due numeri\n");
printf("Primo numero:");
scanf("%d",&n1);
printf("/nSecondo numero:");
scanf("%d",&n2);
printf("\n");
printf("La somma dei due numeri e':%d",sum(n1,n2));
return;
}