BIOS はアセンブリで記述できますが、そうである必要はありません。コンパイラの呼び出し規則と一致しないため、システム コールのパラメータを取得する必要がある部分もあります。
どのようにフラッシュしますか?マザーボードごとに異なりますが、オープン ソースの仮想マシンから始めて、そのための BIOS を作成します。または、BIOS を書き込んだ仮想マシンを作成します。メカニズムはベンダーごとに異なります。通常、dos を起動します (dos は死んだわけではありません。PC の世界、特にマザーボードの開発や組み込みシステムでは非常に活発です)。これらすべての質問に対する答えをまだ知らない場合、その道をたどると多くのマザーボードをブリックすることになります。
マザーボードの BIOS アップグレードを試みて、リバース エンジニアリングを試みることができます (ただし、同意しないというクリック スルー契約がある可能性があります)。それがわかれば、それをロードして at でハックすることができます。私はそこに行きません、あなたがそれを理解する前にあなたのシステムをブリックするでしょう。
BIOS を書くことは本当にあなたが求めていることですか? かなり古い学校で、楽しみのために 6502 コードを書くようなものです。より有用で興味深い低レベルの問題がたくさんあります。
マシンコードを書くことはそれほど難しくないので、それを書くことができれば、楽しみのためにそれを行うことができます。x86 はひどいものです。他のシステムとその asm およびマシン コードを学習する (およびそれらのオペレーティング システムを作成する) ことに時間を費やす必要があります。ARM は世界を支配しており、BIOS に依存していません。x86 以外のシステムでビデオ カードを起動するには、x86 BIOS で x86 をいじる必要があり、x86 BIOS を実行せずに主流のビデオ カードを起動する方法を見つけることができると言われています。エミュレーターがBIOSを実行するのを見て、それが何をするかを見て、BIOSがそれを行わずにその電源オンinitを置き換えることを理解してください...命令セットシミュレーターまたは逆アセンブラーを書くことは、マシンコードを書くことを超えた次のステップです。ただし、x86 では少し時間がかかりますが、
x86 BIOS を使用したい場合は、qemu、virtualbox などの仮想マシンの BIOS を作成、置換、またはハッキングするのが最善の方法です。その BIOS を自分のものに置き換えると、ディレクトリ内のファイルを置き換えるか、コマンド ライン オプションを使用して別の BIOS を指定することになります。その経験が十分にある場合は、レガシー バイオスが搭載されたマザーボードがまだあれば、ハッキングしてプログラミングを行うことができます (いくつかをブリックするため、各タイプのマザーボードを複数購入する必要があります)。同じレベルの経験を積めば 20 ドルから 200 ドルで入手できる非常に多くの組み込みシステムがあるため、まともな回路図とドキュメントなしで PC のマザーボードをハックするのは意味がありません。回路図と BIOS のリストが文書化されている元の PC を掘り出すことができます。また、BIOS がソケットに接続されているため、起動しない場合 (およびマザーボードを破壊しない場合) は、BIOS チップを再プログラムまたは交換できるレンガではありません。おそらく、より多くの BIOS チップを再プログラムするための適切なハードウェアを見つけることは、元の PC で動作するものを見つけるのがおそらく難しいため、マイクロコントローラーを偽の BIOS の代わりに使用したいと考えています。最新のハードウェアを従来のシステム コールの背後に置くなど、BIOS の改善/微調整を行っていただければ幸いです。