2010-12-20 21 views
13

Mam emulator procesora 8086. Emuluje tylko instrukcje 8086. Szukam teraz kompilatora języka C, którego celem jest kierowanie tego emulatora. Czy istnieje jakiś kompilator C, który może to zrobić?Czy jest kompilator C, który celuje w 8086?

Również posiadanie użytecznej libc i takich nie jest dla mnie ważne. Emulator używa niestandardowych (czyli non-PC) Sprzęt i do nich dowolny libc lub nawet ctr0 prawdopodobnie musiały być przepisywane i tak

+1

Każdy 16-bitowy kompilator DOS. –

+0

Niestety, tak, zbyt wielu z nich i zbyt wielu profesorów college'ów sprawia, że ​​ich uczniowie ich używają ... –

+0

@R .. @Han wiele kompilatorów, które widziałem, cel wyżej niż 8086, zwykle idą w górę na 8186 i 8286 opkodach. – Earlz

Odpowiedz

8

BCC - kompilator C Bruce'a

Od bcc(1) - Linux man page:

Opis

Bcc to prosty kompilator języka C, który tworzy asembler 8086, a ponadto opcje kompilacji czasu kompilacji pozwalają na wersje 80386 lub 6809. Kompilator rozumie tradycyjny K & R C z ograniczeniem, że pola bitowe są odwzorowane na jeden z innych typów liczb całkowitych.

Domyślnym działaniem jest utworzenie pliku wykonywalnego 8086 o nazwie a.out z pliku źródłowego.

Otwarte Watcom

Z opisu opcji kompilatora/80x86 konwencji run-time w Open Watcom C/C++ User’s Guide (link PDF):

(tylko 16-bitowy), kompilator użyje tylko 8086 instrukcji w wygenerowanym kodzie obiektowym. Jest to domyślna wartość . Wynikowy kod będzie działał na procesorach 8086 i wszystkich procesorach kompatybilnych w górę. Makro __SW_0 będą predefiniowane czy "0" jest wybrany

7
+0

Czy jesteś pewien, że Digital Mars wygeneruje pliki binarne za pomocą tylko 80 kodów opcyjnych? – Earlz

+0

+1 dla [Open Watcom] (http: //www.openwatcom.org) – jschmier

+0

@Earlz: Digital Mars może atakować 8088, który jest tym samym zestawem instrukcji co 8086: http://www.digitalmars.com/ctg/sc.html#dash023456 –