Alla ricerca di compilatore c a 16 bit per x86 [chiuso]
-
15-11-2019 - |
Domanda
Sto lavorando al porting uc / OS-II da DOS a x86 (modalità reale).Ho bisogno:
Un compilatore per generare un assembly x86 a 16 bit in modalità reale
Un assembler per assemblare l'assembly generato in un file oggetto
Un linker per collegare i file oggetto insieme e produrre un eseguibile (raw binario, COFF, PE, o I formati ELF vanno bene)
Una libreria standard senza richiamare alcun servizio DOS (
int 21h
), dipende solo dal servizio BIOS.
Mi chiedo se c'è qualche catena di strumenti che potrebbe farlo.
Soluzione
Guarda il FreeDOS progetto.Hanno strumenti per sviluppatori che includono compilatori, assemblatori e linker.Probabilmente dovrai modificare la libreria standard, tuttavia, in modo che utilizzi le chiamate BIOS piuttosto che int 21h.
Altri suggerimenti
compilatori a 16 bit?Molti di loro sono menzionati qui:
C'è un compilatore C che si rivolge a 8086?
Generalmente vengono utilizzati per esercizi accademici, quindi se ti rivolgi all'istituto scolastico puoi trovare anche molti esempi:
http://www.google.com.sg/search?q=site%3Aedu+C+compiler+8086
In un precedente lavoro avevamo un progetto basato su uc / OS in esecuzione su una piattaforma x86 in modalità reale.Abbiamo usato TopSpeed C piuttosto che i più noti compilatori Borland o Microsoft, perché TopSpeed C era l'unico del set disponibile e praticabile al momento in cui è arrivato volatile
diritto.Di cui hai molto bisogno quando costruisci uc / OS.Sia Turbo C che Microsoft C (e penso anche che sia QuickC) hanno compilato male gli accessi a volatile
variabili - tipicamente valori di memorizzazione nella cache nei registri e rotture simili.
Avresti difficoltà a entrare in possesso di TopSpeed C, però.E la sua sintassi assembler è...unico.(Penso che sia basato su Modula-2 o qualcosa del genere;finisce per essere molto diverso da MASM / TASM / nasm con cui potresti essere 100 volte più familiare.)
Dai un'occhiata a qualsiasi progetto di bootloader, come GRUB.Dovrebbe essere immediatamente evidente che hanno anche bisogno di tutto ciò che hai menzionato.