汇编器在哪里知道起始地址在哪里?使用Microsoft (R) Segmented Executable Linker Version 5.60.339 Dec 5 1994
(16 位链接器)并添加start
和end start
代码汇编和链接就好了。MASM32 在 bin 目录中包含一个 16 位链接器。但是,您必须将不同的命令行参数传递给 ML 才能正确组装 16 位代码。
.MODEL small
.STACK 100h
.data
message BYTE "Hello, world!","$"
.code
start:
mov ah,9
mov dx,OFFSET message ; addr of buffer
int 21h
END start
回顾一下 - 您的代码需要一个起始地址和一个结束地址,您可以使用 MASM32 随附的当前 ML 来组装 16 位和 32 位代码。要链接 16 位代码,您必须使用 16 位链接器,要链接 32 位代码,您必须使用 32 位链接器。
从我的 16 位 DOS 应用程序之一:
ML.EXE /DMASM /DDOS /Zm /c /nologo /I"f:\masm32\Include" "dosdisplay.asm"
link16.exe /NOLOGO "dosdisplay.obj"