命令行下tc和汇编混合的问题

这个程序如果在tc集成环境下用工程文件连接,则正常执行;如果用命令行连接,则在执行后多显示一行Null pointer assignment。

请高手指教

//-----------------------------------------------
    C程序
//    main.c
#include <stdio.h>

extern int num;
extern int incnum(void);

void main(void)
{
     int i;
     for(i=0;i<10;i++)
     {
         incnum();
         printf("%d\n",num);
     }    
}
//----------------------------------------------
    Assembly程序
//    incnum.asm
_TEXT    SEGMENT BYTE PUBLIC 'CODE'
_TEXT    ENDS
_DATA    SEGMENT WORD PUBLIC 'DATA'
_DATA    ENDS
_CONST    SEGMENT WORD PUBLIC 'CONST'
_CONST    ENDS
_BSS    SEGMENT WORD PUBLIC 'BSS'
_BSS    ENDS
DGROUP    GROUP    _CONST,_BSS,_DATA
    ASSUME CS:_TEXT,DS:DGROUP,SS:DGROUP

_DATA    SEGMENT
    PUBLIC _NUM
_NUM    DW 0
_DATA    ENDS

_TEXT    SEGMENT
    PUBLIC _INCNUM
_INCNUM    PROC NEAR
    PUSH    BP
    MOV    BP,SP
    INC    _NUM
    MOV    SP,BP
    POP    BP
    RET
_INCNUM    ENDP
_TEXT    ENDS
END
//--------------------------------------------
    命令行连接
tcc -c -Ic:\turboc2\include -Lc:\turboc2\lib main.c
masm incnum.asm
tlink main.obj incnum.obj c0s.obj cs.lib
//--------------------------------------------
    执行结果
1
2
3
4
5
6
7
8
9
10
Null pointer assignment  ;这就是多出的一行