彙編這門語言是由誰寫的?(不是指課本)

時間 2021-06-01 12:26:53

1樓:魯哈花

彙編基本上是機器語言的助記符,和機器語言存在幾乎完全對應的關係,是很容易實現的語言。

當初計算機剛造出來的時候,只能識別機器語言,科學家編寫程式的時候,直接寫0和1寫久了也會自然而然的總結出來一些助記符來,例如用abc代表101011101,久而久之,形成了組合語言。

2樓:

指令系統僅僅是CPU 的操作碼而已。

就象你要操作一塊積體電路要寫控制字一樣,只不過這個的控制自太多,所以就用助記附來表示,其實只要指令系統相同或者相容,組合語言就是一樣的。

如:intel 和 AMD CPU Micro-architecture 是很不相同的,即使Pentium 4 的Netburst 和 Pentium 3的 P6 是有很大不同的但是指令系統是相容的,也就是用了同樣的機器碼都屬於IA-32指令體系。

而之所以產生Itanium 是因為實際上IA-32的指令系統中的可用的暫存器太少,要經過中間的暫存器重新命名,而且這個體系的CPU 屬於CISC 和 RISC 的結合,外圍的CISC 用到 uops (微操作碼) 來操作執行核心。

而多數的RISC 計算機是用機器碼直接操作的,省了中間過程,效能可以更多的提高

所以就產生了EPIC 體系結構。

當然,就產生了新的指令系統 Itanium 就使用了大量的暫存器,幾乎每種暫存器都是

128個 ,但是Itanium有兩種操作環境,就是 IA32 和 IA-64(注意:intel 稱自己的64位Pentium 是IA-32擴充套件64位 ,這裡的IA-64是指EPIC 的指令系統),也就是它是可以使用IA-32指令系統的,因為它有專門的解碼和控制單元為IA-32服務。

3樓:馮東

彙編到機器碼的翻譯器叫彙編器 (assembler) 而不叫編譯器。因為比編譯器簡單太多(基本沒有優化,基本只是簡單的查表翻譯)。彙編器不是硬體制定的。

硬體不知道組合語言。但是彙編器確實是做硬體的人編寫的。你看 Intel 的 CPU 技術手冊裡都用組合語言。

理論上可以為同乙個硬體設計不同的彙編,但是鑑於彙編和硬體的相似度,這樣設計出的兩個語言差別也不會很大。所以這項工作就交給硬體設計者了。

組合語言和硬體的關係,有點類似作業系統的 ABI 與 API 的關係。理論上作業系統的 ABI 也是穩定的,可以衍生出很多 API。不過實際上只有作業系統自己的一種。

如何看待計算機專業沒有組合語言這門課程的現象?

羊羊羊 組合語言本身壓根沒啥可學習的內容,一條條指令查手冊就行了,記住也沒啥用。有些人口中常提的彙編有點學習價值,應該是計算機體系結構,編譯優化之類課程覆蓋的內容,或者xx architechecture optimization mannual 之類。 chcyj 沒有就沒有唄,學校沒教自己就別瞎...

程式語言在底層是怎麼轉換成組合語言的?

思而不學則 die。你實際上啥也不會,所以看不懂別人的解釋。什麼是 圖靈機 馮諾伊曼架構 和 哈佛架構 是什麼?什麼是 指令集 CISC和RISC有什麼區別?什麼是 程式 CPU執行的 五級流水線 具體指什麼?編譯器 和 彙編器 有什麼區別?什麼是 交叉編譯 如果不能回答這些問題,那所謂的 CPU架...

組合語言是如何被編譯成機器語言的,這個過程中作業系統做了什麼,到底是先有作業系統還是先有彙編?

法琳 彙編和isa指令集應該是對映關係,莫得優化了。isa往下就是積體電路了,涉及流水線rob way set associated cache啥的,GPU還有更多亂七八糟的cache和pipeline。不寫韌體不用關心isa以下額了 Blame 按照上述的說法,如果乙個程式檔案是純二進位制指令的,...