2009-05-21 13 views
5

私は、裸のCPU(x86)、32ビットプロテクトモード、およびOSなしで動作するハードウェアデバッグツールを検討しています。時間の制約のため、私はすべてのx86アセンブリでツールを書くつもりはありません。私はAdaの言語が好きです(しかし、それに慣れていません)。このプロジェクトではC言語ではなくAdaを使うのが面白いかもしれないと考えました。Adaとアセンブリ

Cでは、アセンブリ言語で書かれたインラインアセンブリまたは呼び出しサブプログラムを使用して、キーボードI/Oや画面上にテキストを表示するなどの基本的な操作のためにBIOSにアクセスできます。 Adaにも同様の機能がありますか?もしそうなら、誰もアセンブリメソッドを呼び出すためのリソースやチュートリアルを知っていて、それらとリンクしていますか?

+2

なぜOSを使用しないと主張しますか?すべてのハードウェア(画面、キーボードなど)にアクセスするのは難しいですが、OSに対処してみませんか? Linuxは無料です;-) – lothar

+0

なぜ私は主張しますか?まあ、ハードウェアをデバッグしていて、Linuxソフトウェアを書いていません! :p 私はPCIバスリセットを行い、設定レジスタを変更する必要があります。私はLinuxの低レベル作業ではあまり成果をあげていませんが、Windowsの世界ではパリティエラー(PERR#)、システムエラー(SERR#)、PCIバスリセット(RESET#)が致命的な出来事です。 –

答えて

5

Adaでインラインアセンブリコードを使用できます。 Asm(オーバーロードされた)機能を提供するSystem.Machine_Codeパッケージを使用する必要があります。

+0

ありがとう!それはトリックを行う必要があります! –

2

GNATリファレンスマニュアルにはMachine Code Insertionsというセクションがありますが、GNAT固有のものですが、別のコンパイラを使用していても、GNAT固有の意味を理解できるはずです。

+0

ありがとう、フリーツールを使いたいのでGNATに固執します。結局のところ趣味のプロジェクトです。 –

関連する問題