如何在32位Windows程序集中使用DOS中断?

时间:2016-03-06 01:11:55

标签: assembly x86

所以我在TASM中编写汇编代码。但是现在我想将它迁移到MASM并让它在32位Windows上运行。我还能保持DOS中断还是有其他方法可以做到这一点?

我想在Windows 10上理想地运行它。

2 个答案:

答案 0 :(得分:1)

Windows 95中的16位代码至少会在Windows 7上运行32位窗口(我没有在Windows 10上试用它的软件)。

但是对于32位和64位代码,你必须开始使用win32 api,它使用不太激动的“call”指令而不是中断。

答案 1 :(得分:1)

简单回答:不。在Win32 / Win64下,调用DOS中断将使程序崩溃,并显示“无效操作”消息。弄清楚你想用DOS中断做什么(控制台输出?写入文件?),找到相应的Win32 API函数,然后调用它们。

更新:取决于你追求的是什么。 DOS中断仅适用于DOS可执行文件; Windows可执行文件必须使用Windows API。完全可以在汇编中包含MAS可执行文件,包括MASM,但您必须学习新技术。旧版MASM支持构建DOS可执行文件,但在当今的计算环境中,该技能组件毫无意义。首先,DOS子系统缓慢但肯定会远离Windows - 64位版本的Windows不再拥有它。