當前位置:首頁 » 編程軟體 » 編譯需要指令集嗎

編譯需要指令集嗎

發布時間: 2024-11-08 03:15:14

編譯時轉化成二進制代碼,需要藉助一定的語法嗎這語法是什麼知識領域里的

任何編譯器都是先將程序轉換成匯編,匯編就是指令集編程,任何一個系統或者CPU都有他自己的指令集,這個不同公司的產品指令集不同,特別是CPU指令集直接和硬體結構掛鉤,你不可能指望電腦的CPU會和電視遙控器的指令集相同,因為構造就不一樣。。。。
高級語言先按照編譯器制定的規則編譯,這些規則由運算符,關鍵字,預編譯只能決定,如果你熟悉指令集,自己都能猜出來是怎麼轉換的。。編譯成匯編之後,由廠商提供的機器碼運算規則(按照這套規則你可以用演草紙算出機器碼),或編譯器編譯成機器碼。。。。

㈡ cpu指令集的問題

你說的x86和x64或者ia64是CPU架構,也就是編譯程序的標准,而MMX、SSE這些是指令集。指令集並非會限制某些程序的運行,而會影響程序運行的速度。

通俗的說,指令集是優化某些程序中的可執行代碼的執行效率,就是說,某些程序在運行在支持某個指令集的CPU上會有很高的性能。比如說,SSE指令集就是為了多媒體程序的性能而設計的,使用了SSE指令集編寫的程序,當他運行在支持這個指令集的CPU上時,性能會有極大提升,而運行在不支持SSE指令集的CPU上,雖然CPU的速度和指標可能一致,但是會有極大地下降。

指令集是一種知識產權,所以amd和intel的不一樣,如果AMD想支持intel的指令集,是需要為intel付費的,所以amd會另外開發一套指令集,以白皮書的形式發放給程序員,讓程序員編制出適合amd cpu使用的程序。

往往一個程序不只可以兼容一套指令集,假如編譯時選擇兼容多種指令集,程序的體積會大一些,但是這並不會造成太大的問題。

而X86是CPU的架構,也就是在只支持X86架構的計算機上,為X64編寫的任何程序是不能運行的,這個不是指令集。

綜上,指令集並不能限製程序是否能夠在該計算機上運行,而是制約了程序運行的速度。

㈢ 程序是通過編譯器編譯才能執行的,那麼編譯器又是怎麼

一般來說,程序語言的編譯有兩個變數,一個是語言本身的語法體系,另外一個是目標機器的指令集體系結構。
對於前者,我們要發明一個新的編程語言的時候,一般是用已有的編程語言寫新語言的編譯器;
對於後者,要進行交叉編譯,即在A指令集的計算機上編譯B指令集計算機要用到的二進製程序。
本質上是一個雞生蛋蛋生雞的問題。
然而還是會繞到最終的問題:最最開始的第一隻雞(蛋(編譯器))哪裡來的?
當然是拿匯編語言寫的啦~
那第一個匯編語言的匯編器是怎麼寫的?當然是直接手寫二進制代碼啊。。。

熱點內容
電動汽車高配置是什麼 發布:2024-11-22 16:44:08 瀏覽:25
編譯原理掃描器設計講解 發布:2024-11-22 16:37:22 瀏覽:302
python依賴庫 發布:2024-11-22 16:37:14 瀏覽:682
androidhttp原理 發布:2024-11-22 16:37:07 瀏覽:447
c語言的堆和棧 發布:2024-11-22 16:12:48 瀏覽:850
反編譯易語言軟體 發布:2024-11-22 16:07:55 瀏覽:845
雙活動數據中心存儲方案 發布:2024-11-22 16:07:41 瀏覽:788
我的世界死亡不掉落生存伺服器推薦 發布:2024-11-22 15:59:30 瀏覽:113
哪個安卓虛擬機可以導入系統軟體 發布:2024-11-22 15:57:53 瀏覽:721
微眾銀行在哪裡設置密碼 發布:2024-11-22 15:47:52 瀏覽:671