2016-08-27 9 views
0

この問題を解決できませんでした。ブートローダから別のアセンブリファイルを呼び出す

私はリファレンスとして、このチュートリアルを使用したX86のためNASMを使ってブートローダーを開発: http://fisnikhasani.com/building-your-own-bootloader/

コマンドを使用する:

nasm -f bin boot.asm -o boot.bin 

私はUSBキーに次にboot.binと呼ばれる私のブートローダを実行することができました。

しかし、私もpacman.asmというx86アセンブリを使用してパックマンゲームを開発しました。私はブートローダを起動して、パックマンゲームをしたいと思っています。

しかし、boot.binファイルのUSBキーが接続されて起動されると、pacman.asmファイルをどのように実行するのか分かりません。

何か助けていただければ幸いです。

+1

このpacmanゲームはDOS割り込みに依存していますか、またはBIOS呼び出しと直接ハードウェアアクセスでブートローダ環境で動作するように設計されていますか? –

+2

一般に、pacman.asmをアセンブルして、ディスク(またはディスクイメージ)のセクタにバイナリファイルとして格納します。あなたのブートローダは、ゲームが置かれたディスクからsctorを読み込み、それをメモリにロードします。ブートローダはそのパックマンコードにジャンプします。 –

+0

確かに、マルチセクタバイナリをブートするための既存の質問がいくつかあります。私はすばやく見ましたが、重複したターゲットを見つけられませんでした。これはあまりにも幅広すぎるように投票するだけです(よく知られている問題です。たとえばsyslinuxのようなブートローダで何度も解決されています) –

答えて

0

あなたは、これは私のために働いていた窓を使用する場合:あなたのコマンドラインに

タイプ:

copy /b bootldr.bin + pacman.bin myGame.img 

これはbootloader.binコピーされますし、それはブートローダの終わりにpacman.binを置きますその後、あなたがメモリにパックマンのゲームをロードして、はるかにをジャンプか.imgの使用または

.binをする必要があなたはいけないMyGame.img

に最終結果を保存します これであなたのゲームをプレイすることができます:)

関連する問題