这东西可真够古老的。学习《80x86。。。。》8.5节
1.汇编模块:
.MODEL SMALL
.CODE
PUBLIC _Sum
_Sum PROC
.........
.........
_Sum END
/*程序名:CA8.C*/
externSum(int,int,int);/*声明函数sum已在其他模块定义*/
intxxx=5 /*以初始化的变量*/
intyyy;
main()
{
yyy=Sum(1,xxx,3);
print("%d\n",yyy);
}
externSum(int,int,int);/*声明函数sum已在其他模块定义*/
intxxx=5 /*以初始化的变量*/
intyyy;
main()
{
yyy=Sum(1,xxx,3);
print("%d\n",yyy);
}
;;模块名:A8.ASM
;;内容:含一个供CA8.C调用的函数Sum
.MODEL SMALL
.CODE
PUBLIC _Sum
PARM1 EQU [BP+4] ;这里为什么用[bp+4],[bp+6]..获取参数,请参考教材《80x86...》
PARM2 EQU [BP+6] ;
PARM3 EQU [BP+8]
_Sum PROC
PUSH BP
MOV BP,SP
MOV AX,PARM1
ADD AX,PARM2
ADD AX,PARM3
POP BP
RET
_Sum ENDP
END
最后用下面命令编译CA8.C,汇编A8.ASM,最后再连接到一起:
TCC -ms CA8 A8.ASM
或者是分别:
TCC -ms -c CA8
TASM /ml A8
TLINK c0s CA8 A8,CA8, ,cs
上述最后连接命令的c0s和cs分别是Turbo C的small模式下的启动代码
目标模块文件和库函数。
阅读全文类别:c/c++ 查看评论