2016-12-31 35 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這是一個真正的經典也許在某個時刻派上用場被警告:。這是巨大的)

相關問題