1

アセンブリでブートローダーの Hello World を実行しようとしています。私はこのチュートリアルに従っています: http://www.osdever.net/tutorials/view/hello-world-boot-loader

私が検索したところ、アセンブリのコンパイルにはgccが機能しないと人々が言っ​​ているようです。そこで、フラットアセンブラを検索して見つけました。この例をコンパイルしようとすると、最初の行 [BITS 16] でエラーが発生します。基本的には「違法な命令」と記載されています。

このコードに必要なアセンブラの種類は何ですか?

4

3 に答える 3

1

GCC の一部のツールがアセンブラーをコンパイルできるかどうかはわかりませんが (できる場合は、16 ビット コードにコンパイルできるかどうかもわかりません)、参照しているサイトでは NASM が推奨されています。NASMで試してみましたか?

于 2012-09-15T17:12:06.120 に答える
0

行をコメントアウトしただけで、FASMで機能しました。FASM のデフォルトは自動的に 16 ビットになるようです。コンパイル後、同じ名前の BIN ファイルが生成されました。名前を IMG 拡張子に変更し、VirtualBox を使用してフロッピー ディスク イメージとして割り当ててテストしました。うまく機能し、起動しました。

この BIN/IMG ファイルをドライブの最初のセクターに書き込めば、問題なく動作するようです。上記のウェブサイトのチュートリアルも使用しました。

于 2015-09-03T08:28:50.483 に答える