私はオペレーティングシステム開発と初心者を習っています。私は、C言語を使った16ビット環境のリアルモード環境でシステムを構築したいと考えています。 Cにおいて`asm()`関数はどのようにC言語で動作しますか?
、私は次のように16ビットにコードを変換する機能asm()
を使用:
asm(".code16")
GCCの言語で16ビットの実行可能ファイル(正確ではないけれども)を生成するためにどの。
質問:
私は2つのヘッダファイルhead1.h
とhead2.h
とmain.c
ファイルがあるとします。今
asm(".code16");
#include<head1.h>
#include<head2.h>
int main(){
return 0;
}
私は16ビットの実行可能ファイルを生成するコマンドで自分のコードを開始し、その後head1.h
とhead2.h
含まれているので、私はすべてのヘッダファイルで同じことを行う必要があります、次のようにmain.c
ファイルの内容は、私は創造していますか? (または)asm(".code16");
行を追加するだけで十分ですか?
OS:Ubuntuの
コンパイラ:GNU CC
gccを使用して16ビットコードをコンパイルしないことをお勧めします。あなたが使用しているのは、多くの問題を引き起こす泥だらけです。 – fuz