使用SASM IDE时
format ELF
在汇编代码中,FASM将文件组装到ELF对象(
.o
然后(默认情况下)使用GCC和LD的MinGW版本将该ELF对象链接到Windows可执行文件(PE32)。这些可执行文件作为本机Windows程序而不是DOS运行。您不能在Windows PE32可执行文件中使用DOS中断,因为该环境中不存在DOS中断。最终结果是它在
int 21h
.
如果要创建可在32位Windows XP中运行的DOS可执行文件,可以执行以下操作:
format MZ ; DOS executable format
stack 100h
entry code:main ; Entry point is label main in code segment
segment text
msg db 'Hello, world!$' ; DOS needs $ terminated string
segment code
main:
mov ax, text
mov ds, ax ; set up the DS register and point it at
; text segment containing our data
mov dx, msg
mov ah, 9
int 21h ; Write msg to standard output
mov ah, 4Ch
int 21h ; Exit DOS program
这将生成一个带有
exe
扩大很遗憾,您不能使用SASM IDE来调试或运行DOS程序。您可以从32位Windows XP命令行运行生成的程序。32位版本的Windows在
NTVDM (virtual DOS machine)
.