MSDOS "Hello World" EXE

5
我想编译一个“Hello World”的MS-DOS可执行文件。
不是在XP 16位模式下运行的程序,也不是在Windows操作系统上运行的MS-DOS模式下运行的程序。
我需要一个可以在我的MS-DOS系统上运行的HELLOWRLD.EXE文件。

3
用什么(编程)语言? - wqw
4
你好,需要翻译的内容是:echo Hello World这句话的意思是输出“Hello World”,可以理解为向计算机发送指令,让它在屏幕上显示“Hello World”。 - Hernán Eche
1
以下是许多语言的示例(旁边列出了操作系统)。正如其他人指出的那样,您很可能会使用C、C++、汇编甚至dos批处理。 http://www.ntecs.de/old-hp/uu9r/lang/html/lang.en.html - ktharsis
2
MS-DOS可执行文件会在16位模式下运行,除非使用各种32位扩展程序之一。 - kmarsh
8个回答

30

我认为 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


所有的回答都非常有帮助 - 但是由于你为我打开了一扇门 :) 我授予了感谢!! - divinci
它在Windows 7 x64中不存在,可能是因为它是一个16位应用程序。 - alexia
1
21字节的可执行文件!!太棒了!! - Peter
关于美元符号($):https://dev59.com/InnZa4cB1Zd3GeqPwO1q#20411716 - user2188550

9

按照以下步骤进行:

  1. 这里合法获取并安装Turbo C 2.0。
  2. 复制此代码(*)。
  3. 编译它。
  4. 你的hello.exe已经准备好运行了。

这是你应该复制的代码(*):

int main(int argc, char **argv)
{
   printf("Hello, world.\n");
   return 0;
}

2
还有DJGPP,它是真正的自由软件,而不仅仅是被遗弃的软件:http://www.delorie.com/djgpp/ - Joachim Sauer
完全同意你们两个的观点。我只是碰巧喜欢旧的Borland编译器。它们太棒了! - Pablo Santa Cruz
1
我可以建议您从Borland博物馆自己获取Borland编译器吗?Abandonware不是法律概念,代码仍然受Borland/Inprise/Enchilada版权保护,无论他们这周称呼什么。请参阅http://edn.embarcadero.com/museum。 - paxdiablo
1
@paxdiablo:你说的没错,abandonware是不合法的。但如果它被正确地声明为abandonware,那就意味着你不能再从所有者那里购买该软件。因此,你唯一的机会就是从拥有它的人那里购买二手软件(除非它实际上不是abandonware)。 - Joachim Sauer
2
不,你可以从Embarcadero合法下载它,他们是当前的版权所有者(请参见我提供的链接)。即使无法从任何地方获得,也并不意味着它是合法的。答案中给出的网站看起来不像是购买合法使用副本,而更像是下载你没有权利拥有的文件 - 为什么要这样做,当你可以合法地获取它呢? - paxdiablo
2
没问题,Pablo,但对于我们关心的人来说,它将永远是Borland博物馆 :-) - paxdiablo

4
DJGPP是一个完整的32位C/C++开发系统,适用于运行DOS操作系统的Intel 80386及更高版本的个人电脑。它包括许多GNU开发工具的端口。开发工具需要80386或更新版本的计算机来运行,它们所生成的程序也需要相应的硬件支持。大多数情况下,生成的程序可以在商业上销售而无需支付许可或版税。
网址:http://www.delorie.com/djgpp/

2

如果要进行C和C++开发,请使用以下免费且开源的编译器之一:

  • DJGPP - GCC的DOS移植版。它可以构建32位受保护的DOS应用程序。
  • Open Watcom - 我不太熟悉这个,但它正在积极开发中,可以针对16位和32位的DOS、Windows和OS/2。

2

0

安装 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 中运行它。
它应该能够运行。


0

如果你想使用Pascal,你会需要Free Pascal。它生成32位的Go32v2二进制文件,就像DJGPP一样,并且可以编译旧的TP代码。

同时也在开发一个Windows->16位Dos编译器(可以生成.COM文件),但是虽然正在进行中,但还没有发布的分支。


0
你需要一个MS-DOS C编译器。是否还有旧版本的Borland C在流传?此外,你可能会在DOS上找到GNU C编译器的移植版。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接