致命:无法生成 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
.COM 程序的 .MODEL
是 "tiny"。
.COM程序只有一个段。所以你不应该在其中使用任何 SEGMENT
、ENDS
或 ASSUME
指令。一个 .CODE
就可以达到目的。因此,开头应该是代码,而不是数据。
.COM 程序总是从头开始。给它贴个标签,只是为了满足TLINK
.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
在使用 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
.COM 程序的
.MODEL
是 "tiny"。.COM程序只有一个段。所以你不应该在其中使用任何
SEGMENT
、ENDS
或ASSUME
指令。一个.CODE
就可以达到目的。因此,开头应该是代码,而不是数据。.COM 程序总是从头开始。给它贴个标签,只是为了满足TLINK
.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