我想编译一个“Hello World”的MS-DOS可执行文件。
不是在XP 16位模式下运行的程序,也不是在Windows操作系统上运行的MS-DOS模式下运行的程序。
我需要一个可以在我的MS-DOS系统上运行的HELLOWRLD.EXE文件。
不是在XP 16位模式下运行的程序,也不是在Windows操作系统上运行的MS-DOS模式下运行的程序。
我需要一个可以在我的MS-DOS系统上运行的HELLOWRLD.EXE文件。
我认为 DEBUG.EXE
仍然随 Windows 发货(至少在XP上是这样)。运行debug并输入以下对话:
c:\src> debug
-a 100
1373:0100 mov ah,9
1373:0102 mov dx,108
1373:0105 int 21
1373:0107 ret
1373:0108 db "Hello world!$"
1373:0115
-n c:\hi.com
-r bx
BX 0000
:0
-r cx
CX 0000
:15
-w
Writing 00015 bytes
-q
c:\src> c:\hi.com
Hello world!
c:\src> _
阅读关于 DEBUG.EXE 的更多信息,请访问:http://en.wikipedia.org/wiki/Debug_(command)
而 INT 21 显示字符串的网页链接是:http://www.uv.tietgen.dk/staff/mlha/PC/Prog/asm/int/21/09.htm
按照以下步骤进行:
这是你应该复制的代码(*):
int main(int argc, char **argv)
{
printf("Hello, world.\n");
return 0;
}
如果要进行C和C++开发,请使用以下免费且开源的编译器之一:
安装 Turbo C/C++ 16 位编译器。然后创建新的 noname00.c
文件。
在其中编写以下代码。
//Include necessary files stdio.h and conio.h for function prototypes.
//The "int agrc , char *argv[]" are optional parameters to main program.If you don't want to use //it you can just write "int main()"
int main(int argc,char *argv[])
{
printf("Hello World !!!!");
getch();
return 0;
}
这个编译器生成的 .exe 文件可以在源目录中找到。
尝试在你自己的 MS-DOS Box 中运行它。
它应该能够运行。
如果你想使用Pascal,你会需要Free Pascal。它生成32位的Go32v2二进制文件,就像DJGPP一样,并且可以编译旧的TP代码。
同时也在开发一个Windows->16位Dos编译器(可以生成.COM文件),但是虽然正在进行中,但还没有发布的分支。