當前位置:ag真人国际官网-ag旗舰厅官方网站 » 編程軟體 » 編譯需要指令集嗎

編譯需要指令集嗎-ag真人国际官网

發布時間: 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-19 10:23:05 瀏覽:875
接龍源碼 發布:2024-11-19 10:14:48 瀏覽:33
驅動軟體哪個安卓版好 發布:2024-11-19 10:08:28 瀏覽:703
伺服器一鍵搭建java環境 發布:2024-11-19 10:08:27 瀏覽:729
布丁少兒編程 發布:2024-11-19 09:57:11 瀏覽:98
vb資料庫數組 發布:2024-11-19 09:23:40 瀏覽:828
安卓游戲數據保存在哪裡找 發布:2024-11-19 09:22:02 瀏覽:310
解壓出來的文件亂碼 發布:2024-11-19 09:15:40 瀏覽:940
北航ftp是多少 發布:2024-11-19 09:15:32 瀏覽:822
瀏覽保存密碼如何取消 發布:2024-11-19 09:10:17 瀏覽:90
网站地图