我正在學習操作系統開發和當然的初學者。我想在實模式環境下構建我的系統,這是一個使用C語言的16位環境。`asm()`函數在C語言中是如何工作的?
在C中,我使用的功能asm()
到代碼轉換爲16位,如下所示:
asm(".code16")
這在GCC的語言,以生成16個可執行文件(不完全雖然)。
問:
假設我有兩個頭文件head1.h
和head2.h
和main.c
文件。是main.c
文件的內容如下:
asm(".code16");
#include<head1.h>
#include<head2.h>
int main(){
return 0;
}
現在,自從我開始我的命令代碼來生成16位可執行文件,然後包括head1.h
和head2.h
,我需要做的所有頭文件相同我要創造? (或)是否足夠添加行asm(".code16");
一次?
操作系統:Ubuntu的
編譯器:GNU CC
我建議你不要使用gcc編譯16位代碼。你使用的是一個引起一堆問題的混亂。 – fuz