2011-06-04 145 views
7

我一直在尋找一個信息,似乎無法找到它,也許你們可以給我一隻手。這是一個簡單的問題:如何使用GCC將C代碼編譯爲8088彙編?

  • 如何使用GCC將C代碼編譯爲8088彙編?

我正在編寫一個8088程序集中的小程序,想知道編譯器是如何做的,這真的很棒。

謝謝!

+2

標題說,8088和標籤說8086哪一個你需要? – 2011-06-04 14:40:10

+0

我目前還不能創建標籤,而8086是唯一可用的標籤。另外,是不是8086/8088是同一個家族?我不認爲這會改變程序集生成的代碼。或者我錯了? – 2011-06-04 14:42:37

+0

你爲什麼不問你的老師? – 2011-06-04 14:49:16

回答

1

有DJGPP的16位版本(基於GCC),這被認爲是能夠產生88分之8086代碼here

+0

那麼,爲了關閉這個話題,我會接受當前版本的gcc **不生成8086/88彙編代碼,我唯一的選擇是使用_djgpp plugin_或_other編譯器_就像你們許多人建議的那樣。儘管首先告訴我關於_djgpp_的插件是** @ pmg **,但我將_this_標記爲接受的答案,因爲我不能標記他的。感謝所有幫助過我的人!祝大家有個美好的一天! – 2011-06-05 17:52:55

2

-S標誌產生彙編輸出,雖然不是這些天爲8088

gcc -S myfile.c 

的輸出將是在myfile.s的。

+0

我知道,我知道,但我的老師告訴我,我可以用gcc生成8088彙編,這正是我需要的。一個代碼僅與16位寄存器一起工作,並且僅限於8086/8088系列處理器。 – 2011-06-04 14:44:55

+2

@BeOliveira很明顯,你應該問你的老師如何去做 - 這就是他們得到的報酬。 – 2011-06-04 14:46:46

+0

嗯,是的,但這是一個週末,我不能聯繫他,仍然需要這樣做。另外,我問你們,希望有人能幫助我。 – 2011-06-04 14:49:16

2

GCC允許使用-mtune = cpu-arch指定目標機器架構,但它現在不支持i8088。支持的體系結構是i386和更新的體系結構。

+3

'-mtune'只會優化,'-march'就是你所說的。 – rubenvb 2011-06-05 14:16:51

2

如果您可以考慮其他編譯器,總是有OpenWatcom,它既是開源的,也會生成16位代碼。

+0

是的,我可以考慮其他編譯器,一定會看看_OpenWatcom_。非常感謝你對這個提示! – 2011-06-05 17:55:31