如何在DosBox

时间:2016-03-16 11:58:39

标签: assembly x86 32-bit tasm dosbox

我目前正在编写使用TASM编译并与Turbo Linker链接的汇编程序我正在寻找一种编译程序并将程序链接为32位汇编而不是16位的方法。 我看到TLINK命令有一个开关/3(它以32位模式调用Turbo Linker)但我似乎无法找到一种编译程序的方法,因为32-与TASM相关。

简而言之:我想知道如何使用TASM和TLINK通过DosBox环境编译一个简单的32位程序。

1 个答案:

答案 0 :(得分:3)

你做不到。 MS-DOS,因此DOSBox,只能直接运行16位实模式MS-DOS可执行文件。您可以使用TASM和32位版本的TLINK创建32位Windows可执行文件,但这些可执行文件只能在Windows下运行。 (您不需要使用TASM传递任何特殊选项,只需在程序集中使用32位USE32段。)

要在MS-DOS下运行32位代码,您需要使用32位DOS extender。这些扩展程序允许在MS-DOS下执行受保护的模式程序,为MS-DOS和BIOS提供的实模式接口提供保护模式接口。通常这些DOS扩展程序用于生成一个包含16位MS-DOS可执行文件的文件,该文件可以加载加载32位程序的DOS扩展程序。

如何使用这样的DOS扩展程序使用在DOSBox下运行的TASM创建32位程序取决于特定的DOS扩展程序。您可能至少会使用不同的链接器,它可以创建DOS扩展器可以加载的任何形式的可执行文件。有些可能根本不适用于TASM。