DOSBox下安装的TurboC怎么链接 C 和 ASM

developCpp 2019-10-26 03:03:56
在网上搜索了很多都没有一个好用的。
环境是 win10下DOSBox
安装的官方原版 TC 3 和 TASM 5
能编译C文件和ASM文件。但是不能链接。
这个问题困扰了一个多月了。
求大神指导一下。
不胜感激!
...全文
294 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
是可以的,随便做个例子:

1. 先写个汇编程序testasm.asm
.8086
.model small, C

public func1

.code
func1:
push bp
mov bp, sp
mov ax, [bp + 4]
add ax, [bp + 6]
pop bp
ret

end

然后在命令行:
tasm /c /ml testasm.asm
生成testasm.obj,这里关键有两点,一是要使用C调用约定二是要保持符号区分大小写,否则在C程序中链接会找不到符号

2. 写个C主程序testcpp.cpp
#include <stdio.h>

extern "C" func1(int a, int b);

int main()
{
printf("%d + %d = %d\n", 1, 2, func1(1, 2));

return 0;
}

3. BC中建个工程,project -> open project,随便输个名字,比如叫test
然后,project->add item,把cpp和obj都加入工程
双击打开cpp,Make,就success了
developCpp 2019-11-02
  • 打赏
  • 举报
回复
引用 2 楼 zara 的回复:
做的是 dos16类型的程序吧,是不是设置了错误的程序类型,链接时具体错误提示,或者干脆用 TC2.0+TASM5试试?


TC2和TC3有区别吗
developCpp 2019-11-02
  • 打赏
  • 举报
回复
还是一样的结果,是不是我TurboC设置上有问题呢

引用 3 楼 早打大打打核战争 的回复:
把tasm汇编生成的.obj加入project就可以了
developCpp 2019-11-02
  • 打赏
  • 举报
回复
在命令行输入 bcc testcpp.cpp testasm.asm
成功生成exe
太感谢了
  • 打赏
  • 举报
回复
把tasm汇编生成的.obj加入project就可以了
zara 2019-10-26
  • 打赏
  • 举报
回复
做的是 dos16类型的程序吧,是不是设置了错误的程序类型,链接时具体错误提示,或者干脆用 TC2.0+TASM5试试?
developCpp 2019-10-26
  • 打赏
  • 举报
回复
我又安装了DOS下的 Borland C 3.1 仍然无法链接。错误如下

Linker Error: Undefined symbol _SC_PEND in module CREATE.C

其中 sc_pend 函数是在 asm 文件里

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧