2016-12-31 34 views
4

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

PS:我使用的是TASM和TLINK /吨编译代码...

+2

[装载程序到RAM,并执行它们NASM 16B(的可能的复制http://stackoverflow.com/questions/10006072/loading-programs-to-ram-and-executing-them-nasm-16b) –

+0

我没有使用NASM,我正在使用TASM,并且该链接中的示例不适用于我... :( – user3587527

+2

请显示您的代码 – fuz

回答

2

听起来你就可以这样做你自己,所以我只是给你提示。

A .com并不比字节码多得多。你可以简单地将文件加载到RAM然后跳转到它。确保代码以4字节边界开始。

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

(也,这里的Ralf Brown's Interrupt List这是一个真正的经典也许在某个时刻派上用场被警告:。这是巨大的)

相关问题