2010-12-20 64 views
13

我有一個8086 CPU模擬器。它僅模仿8086指令。我正在尋找一個C編譯器來定位這個模擬器。有沒有可以做到這一點的C編譯器?是否有一個針對8086的C編譯器?

此外,有一個可用的libc,這對我來說並不重要。仿真器使用自定義的(即非PC)的硬件和爲此任何的libc甚至在ctr0很可能不得不反正改寫

+1

任意的16位DOS編譯宏__SW_0 將被預先定義。 – 2010-12-20 20:12:06

+0

不幸的是,太多了,太多的大學教授讓他們的學生使用它們...... – 2010-12-20 20:36:28

+0

@R .. @Hans我見過的許多編譯器的目標都高於8086,通常他們會上升到8186和8286操作碼。 – Earlz 2010-12-21 21:10:26

回答

8

BCC - 布魯斯的C編譯器

bcc(1) - Linux man page

描述

Bcc是一個簡單的C編譯器,它產生8086彙編器,此外編譯器編譯時選項允許80386或6809版本。編譯器理解傳統的K & R C,只是將位字段映射到其他整數類型之一。

默認操作是從源文件生成名爲a.out的8086可執行文件。

打開WATCOM

從編譯器選項/ 80×86運行時公約的描述在Open Watcom C/C++ User’s Guide(PDF鏈路):

(唯一的16位)的編譯器將在生成的目標代碼中僅使用8086指令。這是默認的 。生成的代碼將在8086和所有向上兼容的處理器上運行。如果 「0」 被選擇

7
+0

你確定數字火星只會使用8086操作碼生成二進制文件嗎? – Earlz 2010-12-20 19:51:06

+0

+1 [Open Watcom](http://www.openwatcom。org) – jschmier 2010-12-20 19:52:15

+0

@Earlz:數字火星可以瞄準8088,它與8086的指令集相同:http://www.digitalmars.com/ctg/sc.html#dash023456 – 2010-12-20 19:57:52

相關問題