这东西可真够古老的。学习《80x86。。。。》8.5节
1.汇编模块:
.MODEL SMALL
.CODE
PUBLIC _Sum
_Sum PROC
.........
.........
_Sum END
extern Sum( int , int , int); /*声明函数sum已在其他模块定义*/
int xxx = 5 /*以初始化的变量*/
int yyy;
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++ 查看评论