-
C语言中调用nasm函数
汇编程序头部加上关键字 g l o b a l global global 将该函数声明为全局函数:
global _asmfun
C语言程序头部要加上关键字 e x t e r n extern extern
extern void asm_fun();
-
汇编中调用c语言函数
C语言无需额外 *** 作,在汇编程序头部加上关键字 e x t e r n extern extern ,同时,如果需要传参给C语言函数,则按照后参先入的顺序将参数压栈,再调用C语言函数,压栈过程中还要注意一个int类型参数是占四个字节。
extern _cfun ;引入外部函数 void cfun(int a,int b) xor CX,CX ;CX=0 push CX ;圧入第二个参数的高两位 push AX ;圧入第二个参数的低两位 push CX ;圧入第一个参数的高两位 push BX ;圧入第一个参数的低两位 call _cfun ;调用C语言函数
-
参数传递和返回值
对于C语言函数
int cfun(int a,int b);
调用函数时会按后参先进的方式将参数压栈,即先将参数 b b b 压栈,再将参数 a a a 压栈,最后将 C S CS CS 和 I P IP IP 压栈(先 C S CS CS 后 I P IP IP )。函数的返回值是通过 A X AX AX返回的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)