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

FATAL: Cannot generate COM file : invalid initial entry point adress

在使用 Tlink /tdc 命令链接此汇编文件时,我收到了 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. .COM 程序的 .MODEL 是 "tiny"。

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

  3. .COM 程序总是从头开始。给它贴个标签,只是为了满足TLINK

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

一个简单的 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