パーティション テーブルを読み取り、ブータブル パーティションの最初のセクターをロードする基本的な MBR を作成しています。CHS と LBA のアドレッシング モードで混乱しています。互換性の理由を除いて、CHS は多かれ少なかれ使用されていないことをチュートリアルで読みました。そこで、LBA (INT 13h 拡張機能) を使用することにしました。ドライブのセクターをロードするには、そのパーティションのパーティション テーブルから CHS 値を読み取る必要があります。そうして初めて、それを LBA に変換し、「ディスク アドレス パケット」に格納することができました。
私の疑問は、パーティション テーブルの CHS がそれぞれ 1 バイトであることです。この値を直接取得して LBA に変換する必要があります (または) 最初に変換する必要があります。
Cylinder = 10 bits
Sector = 6 bits
Head = 8 bits
そしてそれをLBAに変換しますか?
注: 私の MBR は、HDD と USB の両方のセクターにアクセスできる必要があります - それが動機です。
OS: Ubuntu
アセンブラー : ガス