汇编和调用C函数 其他开发语言 / 汇编语言 - CSDN社区 community.csdn.net
2008-05-25 22:33
519 查看
导读:
我用汇编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
相关文章推荐
- 算术移位与逻辑移位有什么区别? 其他开发语言 / 汇编语言 - CSDN社区 community.csdn.net
- 若用MASM写操作系统的启动部分如何实现? 其他开发语言 / 汇编语言 - CSDN社区 community.csdn.net
- 如何将浮动的DIV位置一直居中?~ Web 开发 / ASP - CSDN社区 community.csdn.net
- 有关C里的宏与C++内联函数的问题 C/C++ / C++ 语言 - CSDN社区 community.csdn.net
- 为何汇编里调用C函数需要堆栈,而汇编语言的函数的调用却不需要堆栈
- 求教:AfxEnableControlContainer(); VC/MFC / 基础类 - CSDN社区 community.csdn.net
- 兼容性的问题 移动平台 / Windows Mobile - CSDN社区 community.csdn.net
- 重大问题:怎样动态维护socket连接! VC-MFC - 基础类 - CSDN社区 community.csdn.net
- vb.net语言调用dll函数出现“读取或写入受保护内存。这通常指示其他内存已损坏。”
- 使用 Antlr 开发领域语言 - Crazy Programmer ( 囧rz=З ) - 博客频道 - CSDN.NET
- 工作区的RESOURCES提示载入失败? VC/MFC / Visual C++ 资源 - CSDN社区 community.csdn.net
- 汇编语言: 从键盘上输入一串字符(用回车键结束,使用10号功能调用。),将其中的小写英文 字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。
- 求VC版本如何利用WMI获得磁盘信息 VC/MFC / 进程/线程/DLL - 社区 community.csdn.net
- 其他开发语言(如C#) 调用 FastReport 报表的方法源代码
- Java 调用其他开发语言开发的动态链接库文件(一)
- 在sqlserver中如何对text类型的数据进行replace操作。 MS-SQL Server / 基础类 - CSDN社区 community.csdn.net
- (转载) Linux汇编语言开发指南(zt)
- 汇编语言---函数调用栈
- C#中调用其他语言写的DLL
- 汇编语言中参数调用问题