问题
I need to develop a procedure for Assembly language and call that procedure from C language (pass a string and return an integer value). My assembly procedure works fine "stand-alone". I need help with connecting them together.
Program is supposed to run on Intel 8086. I need to use MASM or emu8086 as assembler/simulator. Kindly recommend a C compiler and also a way to make the simple C program that is able to call the assembly procedure and get the returned value.
How can I pass a string to this external function?
How can I connect the ASM file and the C file? (How will the compiler know where is the definition/code for this procedure?)
How can I get the string sent from C in Assembly language, also how to return the integer to C?
回答1:
recommend a C compiler
Not enough info, however if your platform is significant enough, chances are that GCC already supports it.
and also a way to make the simple C program that is able to call the assembly procedure and get the returned value.
The way for writing simple C programs is using a text editor. (Oh wait, you're interested in the code? Here it goes:
#include <stdio.h>
extern int foo();
int main()
{
int i = foo();
printf("%d\n", i);
return 0;
}
来源:https://stackoverflow.com/questions/14278373/intel-8086-assembly-procedure-calling-from-c