Вопрос

Я работаю над портированием uc/OS-II с DOS на x86 (реальный режим).Мне нужно:

  1. Компилятор для создания 16-битной сборки x86 в реальном режиме.

  2. Ассемблер для сборки сгенерированной сборки в объектный файл.

  3. Линкер, чтобы связать файлы объектов вместе и вывести исполняемый файл (необработанные, форматы, скафу, физкультуры или эльфи

  4. Стандартная библиотека без вызова каких-либо служб 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.Должно быть очевидно, что им тоже нужно все, о чем вы упомянули.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top