我正在学习操作系统开发和当然的初学者。我想在实模式环境下构建我的系统,这是一个使用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