汇编和调用C函数 其他开发语言 / 汇编语言 - CSDN社区 community.csdn.net
来源:互联网 发布:爱知时计 编辑:程序博客网 时间:2024/05/18 04:00
导读:
我用汇编1.asm:
extrn _o:near
data segment
data ends
code segment
main proc far
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
call _o
ret
main endp
code ends
end start
调用o.c:
#include
o()
{
printf("aaa");
}
extern void main();
两个文件分别编译为obj文件:
tcc -c -Iz:/tc/include o.c
masm 1
然后连接
tlink 1.obj o.obj
总会报错“Undefined symbol '_PRINTF' in module O.C
为何?如何解决阿?
文件改为:
1.asm:
extrn _o:near
public _main
data segment
data ends
code segment
_main proc far
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
call _o
ret
_main endp
code ends
end start
o.c:
#include "stdarg.h"
#include "stdio.h"
o()
{
printf("%s","aaaaa");
}
extern void main();
拷贝stdarg.h、stdio.h拷到tc根目录下,masm、tcc也在这个目录
编译通过
但是一执行生成的exe,dos就死机了
本文转自
http://topic.csdn.net/t/20060904/10/4996403.html
我用汇编1.asm:
extrn _o:near
data segment
data ends
code segment
main proc far
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
call _o
ret
main endp
code ends
end start
调用o.c:
#include
o()
{
printf("aaa");
}
extern void main();
两个文件分别编译为obj文件:
tcc -c -Iz:/tc/include o.c
masm 1
然后连接
tlink 1.obj o.obj
总会报错“Undefined symbol '_PRINTF' in module O.C
为何?如何解决阿?
文件改为:
1.asm:
extrn _o:near
public _main
data segment
data ends
code segment
_main proc far
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
call _o
ret
_main endp
code ends
end start
o.c:
#include "stdarg.h"
#include "stdio.h"
o()
{
printf("%s","aaaaa");
}
extern void main();
拷贝stdarg.h、stdio.h拷到tc根目录下,masm、tcc也在这个目录
编译通过
但是一执行生成的exe,dos就死机了
本文转自
http://topic.csdn.net/t/20060904/10/4996403.html
- 汇编和调用C函数 其他开发语言 / 汇编语言 - CSDN社区 community.csdn.net
- 算术移位与逻辑移位有什么区别? 其他开发语言 / 汇编语言 - CSDN社区 community.csdn.net
- 若用MASM写操作系统的启动部分如何实现? 其他开发语言 / 汇编语言 - CSDN社区 community.csdn.net
- 有关C里的宏与C++内联函数的问题 C/C++ / C++ 语言 - CSDN社区 community.csdn.net
- CSDN社区电子杂志(CSDN Community E-Magazine)
- 散列码的作用 Java / J2SE / 基础类 - CSDN社区 community.csdn.net
- 求教:AfxEnableControlContainer(); VC/MFC / 基础类 - CSDN社区 community.csdn.net
- 重大问题:怎样动态维护socket连接! VC-MFC - 基础类 - CSDN社区 community.csdn.net
- 创建项目时报:http://1.1 400 bad Request错误 .NET技术 / ASP.NET - CSDN社区 community.csdn.net
- 工作区的RESOURCES提示载入失败? VC/MFC / Visual C++ 资源 - CSDN社区 community.csdn.net
- C语言函数和汇编函数相互调用(转)
- C语言函数和汇编函数相互调用
- 客服邮箱:webmaster@csdn.net主要论坛分类 开发语言 VC++|VB|Delphi|C/C++|BCB|汇编 企业开发 Lotus|WebSphere|GIS|信息化|行业 Java技
- 引用新浪天气预报http://community.csdn.net/
- C语言调用汇编和汇编调用C语言
- 求VC版本如何利用WMI获得磁盘信息 VC/MFC / 进程/线程/DLL - 社区 community.csdn.net
- 从汇编看c语言函数调用
- C语言函数调用的汇编实现
- EMACS getting started
- Java 处理Excel
- 史上最强的10大管理定律
- Function.createDelegate
- 数据绑定控件
- 汇编和调用C函数 其他开发语言 / 汇编语言 - CSDN社区 community.csdn.net
- My first java blog
- List View Macros
- 如何扩展QTP对于不可识别控件的处理能力
- PCB经验总结
- 更多关于AD和DNS的命名习惯
- 企业信息化随笔
- Travelers
- 在 Visual C++ 中使用内联汇编2(转) - 堕落の空间 - 上海大学乐乎博客