如何在程序集16位中执行另一个文件

我正在开发一个简单的B
IOS重置器,仅用于学习.所以我有主文件,就是菜单,名为Reseta.com,是的,它是一个没有堆栈的模型.我有一个A.com,其中重置代码,所以我需要用我的主程序执行A.com,Reseta.com,A.com在DOS调试中编写,是的,我在
Windows 98中,但programa将在MS-DOS上运行.我尝试使用Interrupt 21,就像服务4Bh,3DH一样,但我还没有成功.最简单的方法是如何做到的?只需调用“A.com”文件,它从中断21返回到服务0的DOS.谢谢,为了让它更容易理解,我正在寻找像WinExec();在WinAPI中,但当然,在汇编16位到MS-DOS.

PS:我正在使用TASM和TLINK / t来编译代码……

最佳答案 你听起来自己能够做到这一点,所以我只是给你提示.

.com不仅仅是字节码.您只需将文件加载到RAM然后跳转到它即可.确保代码以4字节边界开始.

或者,如果软重启足够,您可以在程序中调用int 19h,跳转到引导加载程序并重新加载DOS.

(另外,这里是Ralf Brown’s Interrupt List.这是一个真正的经典.它可能会在某个时候派上用场.请注意:它是巨大的.)

点赞