Ищу 16-битный компилятор C для x86 [закрыто]
-
15-11-2019 - |
Вопрос
Я работаю над портированием uc/OS-II с DOS на x86 (реальный режим).Мне нужно:
Компилятор для создания 16-битной сборки x86 в реальном режиме.
Ассемблер для сборки сгенерированной сборки в объектный файл.
Линкер, чтобы связать файлы объектов вместе и вывести исполняемый файл (необработанные, форматы, скафу, физкультуры или эльфи
Стандартная библиотека без вызова каких-либо служб DOS (
int 21h
), зависят только от службы BIOS.
Мне интересно, есть ли какая-нибудь цепочка инструментов, которая могла бы это сделать.
Решение
Проверьте FreeDOS проект.У них есть инструменты разработчика включая компиляторы, ассемблеры и компоновщики.Однако вам, вероятно, придется изменить стандартную библиотеку, чтобы она использовала вызовы BIOS, а не int 21h.
Другие советы
16-битные компиляторы?Некоторые из них упомянуты здесь:
Есть ли компилятор C, предназначенный для 8086?
Обычно они используются для академических упражнений, поэтому, если вы ориентируетесь на образовательное учреждение, вы также можете найти множество примеров:
http://www.google.com.sg/search?q=site%3Aedu+C+compiler+8086
На прежней работе у нас был проект, основанный на uc/OS, работающем на платформе x86 реального режима.Мы использовали TopSpeed C, а не более известные компиляторы Borland или Microsoft, потому что TopSpeed C был единственным доступным и жизнеспособным компилятором из набора, который получил volatile
верно.Что вам очень нужно при создании uc/OS.И Turbo C, и Microsoft C (и, я думаю, QuickC тоже) неправильно скомпилировали доступ к volatile
переменные - обычно кэширование значений в регистрах и тому подобные поломки.
Однако вам будет сложно получить TopSpeed C.И его синтаксис ассемблера...уникальный.(Я думаю, что он основан на Модуле-2 или чем-то вроде того;в конечном итоге он очень сильно отличается от MASM/TASM/nasm, с которым вы, возможно, в 100 раз лучше знакомы.)
Проверьте любой проект загрузчика, например GRUB.Должно быть очевидно, что им тоже нужно все, о чем вы упомянули.