致命:无法生成COM文件:无效的初始入口点地址

时间:2017-04-01 11:11:59

标签: assembly tasm

使用Tlink /tdc命令链接此asembly文件时,出现FATAL: Cannot generate COM file : invalid initial entry point adress.错误消息。我不知道如何修复这个BUG。我应该在代码中更改什么才能启动此程序。

.MODEL HUGE
org    100h

;.386
.code  
Dane            SEGMENT
DL_TABLICA      EQU     10
Tablica         DB      01h, 02h, 00h, 10h, 12h, 33h
                DB      15h, 09h, 11h, 08h, 0Ah, 00h
Najmniejsza     DB      ?
Dane ends
Kod SEGMENT 
ASSUME  CS:Kod, DS:Dane
                ;jmp     Poczatek

Start:


                mov     ax, 4C00h
                int     21h
Kod ENDS

End     ;Endprog
Start

1 个答案:

答案 0 :(得分:3)

  1. .COM程序的.MODEL“很小”。

  2. .COM程序只有一个段。因此,您不应在其中使用任何SEGMENTENDSASSUME指令。单个.CODE可达到此目的。因此,开头应该是代码,而不是数据。

  3. .COM程序始终在开始时启动。给它贴上标签只是为了满足TLINK。

  4. .COM程序以DS = CS开头。您无需初始化DSmov ax, @data mov ds, ax)。

  5. 简单的Hello World计划:

    MODEL tiny
    .CODE
    .386                        ; Just to show at what position it has to be
    ORG 0100h
    
    Start:
    
        mov ah, 09h             ; http://www.ctyme.com/intr/rb-2562.htm
        mov dx, OFFSET hello
        int 21h
    
        mov ax, 4C00h           ; http://www.ctyme.com/intr/rb-2974.htm
        int 21h
    
    hello:  db "Hello World", '$'
    
    End Start