Я изучаю разработку операционной системы и начинающий, конечно. Я хотел бы создать свою систему в режиме реального времени, которая представляет собой 16-разрядную среду с использованием языка C.Как функция `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-битного кода. То, что вы используете, - это kludge, который вызывает множество проблем. – fuz