导读:
我用汇编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