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

編譯需要指令集嗎

發布時間: 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-08 05:33:08 瀏覽:419
中央編譯出版社一年的銷售額 發布:2024-11-08 05:32:15 瀏覽:561
c語言結構體位域 發布:2024-11-08 05:31:00 瀏覽:552
androidv7包 發布:2024-11-08 05:26:41 瀏覽:540
停止共享文件夾腳本 發布:2024-11-08 05:20:54 瀏覽:39
查看資料庫的sid 發布:2024-11-08 05:16:47 瀏覽:830
菲斯塔dlxdct是哪個配置 發布:2024-11-08 05:06:09 瀏覽:212
profile怎麼配置 發布:2024-11-08 05:06:07 瀏覽:377
一鍵安裝linux 發布:2024-11-08 05:04:36 瀏覽:788
lol直播什麼配置要求 發布:2024-11-08 05:04:33 瀏覽:951