Assembly 如何在DosBox上运行32位TASM编译程序

Assembly 如何在DosBox上运行32位TASM编译程序,assembly,x86,32-bit,tasm,dosbox,Assembly,X86,32 Bit,Tasm,Dosbox,我目前正在编写汇编程序,这些程序是用TASM编译并与Turbo Linker链接的。我正在寻找一种方法,将程序编译并链接为32位程序集,而不是16位程序集。 我看到TLINK命令有一个开关/3(在32位模式下调用Turbo链接器),但我似乎找不到用TASM将程序编译为32位的方法 简而言之:我想知道如何使用TASM和TLINK通过DosBox环境编译一个简单的32位程序。你不能。MS-DOS和DOSBox只能直接运行16位实模式MS-DOS可执行文件。您可以使用TASM和32位版本的TLINK创

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


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

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

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


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

为什么要使用emu8086进行标记?因为它是通过DosBox模拟器运行的,并且它模拟的是8086处理器。emu8086是不同的模拟器,而不是DosBox。我理解,谢谢您的更正。