導航:首頁 > 源碼編譯 > 編譯器依賴於cpu嗎

編譯器依賴於cpu嗎

發布時間:2023-07-02 12:04:31

㈠ 是不是每種處理器都要開發自己的編譯器,比如inter的cpu,arm,51單片機

每個處理器廠家都會開發本身的編譯器。這是硬體設計與系統工程師的工作。軟體編輯員一般都不需染手此東西。是否每個牌子的處理器都須有自己的編譯器呢?未必。
比如Intel,AMD,VIA 同是用x86平台都可享用Intel的編譯器。
又如Siemens, SGI,NEC 同出產MIPS平台的處理器都可享用MIPS 的編譯器。
但有些特別指令如INTEL的MMX,SSE1,2,3,4;AMD的3DNOW,AMD64 等就有勞個產家編寫。
如沒有特別指令編譯器, 軟體會出錯嗎?很多高檔程序編輯軟體都會翻譯及處理,用標准指令來取代特別指令(應該說不用特別指令),當然執行速度會慢過特別指令。

㈡ 程序的編譯匯編

如何被編譯的呢?
其實計算機只能識別和執行的就是0.1
編譯出來的的也都是機器碼 既0或1

怎麼是操作系統呢 他是根據cpu而編譯的
不同的CPU 都有不同的指令集
所以不同的cpu 就要選用不同的 編譯器了

編譯器本身又是程序,操作系統的運行又是靠什麼編譯的呢?

操作系統是已經被編譯好的 程序 而編譯器是運行在已經編譯好的操作系統上的·
怎麼說呢其實 以前沒有編譯器 都是手工匯編
就是人自己把 匯編語言轉變成 2進制的可執行文件
後來程序越來越大 手工匯編 出錯的幾率也越來越大
所以有了編譯器·

硬體上的匯編器和

硬體上沒有匯編器 都是人自己寫的

編譯器上的匯編器什麼關系?

編譯器的匯編器是把 高級語言轉成 計算機可執行的文件!即1.0

㈢ 匯編編譯器究竟在哪裡Cpu中

編譯器其實就是個軟體,把你的匯編語言編譯成 計算機可執行的 二進制代碼。
如此而已,不要想太多

㈣ 關於cpu指令集和編譯器的問題

這些軟體在編寫時也考慮到了這點,所以用兼容的方式是可以運行的,當然,在優化過的程序(與指令集最匹配)中肯定會獲得較好的運行效率。
個人觀點,不夠專業,僅供參考!

㈤ 關於編譯原理的問題

1.當然是機器語言了,如果是匯編指令,那還得編譯一次!能運行的程序都是機器語言,只有機器語言才能控制CPU,NET或Java這些中間語言,程序在運行時會被CLR或JVM快速編譯成機器語言,因此這些程序速度上有損失。

高級語言源代碼(文本)-通過編譯器(compiler)-程序(二進制機器語言)
匯編代碼(文本)-通過匯編器(assembler)-程序(二進制語言)

看到這里,你可能會想那匯編語言到底有什麼用呢,編譯器完全能代替匯編啊?
(1).編譯器是通過高級語言(c,c++)轉到機器語言的。轉換過的機器語言受限與高級語言,效率和功能上都有限制。比如c不等過分操作內存。但通過匯編器轉化過來的機器語言,效率高,且用匯編語言,直接和CPU對話!
(2).匯編可以反匯編(逆向編譯),而這里高級語言沒有發言權,就是:
程序(二進制機器語言)-通過反匯編器(compiler)-可轉化為匯編代碼(文本)
但永遠不能轉化為高級語言的源代碼,。
以上兩點匯編存在的重要性。

2。當然是說移植源代碼。windows用x86機器語言,蘋果用powerPC機器語言,windows程序當然不能運行在蘋果機上,因為程序其實就是一串機器語言!但windows上有c的編譯器(vc++),蘋果機上也有c編譯器(gcc),因此同一個c的源代碼,當然就可以通過不同平台的同一種編譯器實現平台移植。

3.當然是NASM,我看的所有書都首先說NASM,他是開源的,就像Linux一樣,很受歡迎,還有MASN是微軟的,borland的也有匯編器,不過都不常見了。

4.這跟CPU有關,一般32位x86兼容的cpu有許多寄存器,多數是32位的,也有16位的。比如CS,ES,DS這些segment寄存器一直是16位的。

5.優勢太多了,這和32位和16位存在的優勢一樣,16位電腦最大內存1MB,寄存器都是16位的。32位,最大內存可以有4GB,整整是16位的4096倍啊!16位多渺小啊,同理64位基本上也可以蔑視32位,64內存最大內存用TB來衡量,寄存器多數是64位!地址匯流排也是64位。64對32位沒有什麼優勢劣勢可言,64位完全就是32位的下一代。

㈥ 關於編譯器 操作系統 CPU

C語言標准規定,int類型最少為2位元組,long類型不能比int類型短。具體多長,由編譯器自行決定。
一般,16位編譯器(如老掉牙的Turbo C 2.0),int類型佔2個位元組,而現代32位編譯器如Visual C++、gcc、Intel C/C++,int類型都是4位元組的。所以如果為了編寫可移植性的程序,不要對數據類型的長度做假設。
佔用多少位元組,主要取決於編譯器。而不是多少位的軟體和CPU,比如x86-64軟硬體系統上,大多數int仍然是4位元組長,比如微軟的Visual C++在生成64位程序的時候就是如此。
這個多少位是指地址匯流排的長度,並不是int類型佔用的位數。

㈦ 學c語言用電腦編程,或運行相關編譯器等軟體,所用電腦必須用intel的處理器嗎

ss。一般ASP搭配Access,PHP搭配MySql。
PHP是比較古老的語言了,ASP也是五六年前很流行的,這兩年比較流行的是Java和Asp.net,不過學Java比較多人要,Asp.net開發起來會相對簡單一點,但現在Java也封裝得很好,有利於開發。關於學什麼,就自己興趣所在了。
我也是計算機專業的,雖然覺得不怎樣,但總算有過這幾年經驗。關於如何學一門語言,我認為,不要只看書,要看書然後動手,最好自己找個項目來做,做項目需要什麼,就看什麼,邊學邊做,這樣一來有興趣,二來可以學到東西。但是若一點都不懂的話項目也是做不下去的,所以呢,最好找兩本好一點的書,先瀏覽性過一遍,然後再相對較詳細的看一遍,這樣起碼對這門知識有點了解,以後做的時候找相應的知識也容易一點。
最後回答你的第一個和第二個問題:1.那些不用記下來,要看懂,要知道結構,比如If...else;for,while之類的,知道那些是表達什麼樣的結構。這些東西,邊用邊學慢慢就全知道了,背下來一點用都沒有。
2.不一樣的概念。這里的函數只是把一些經常用到的語句寫在一起,方便調用。這些慢慢體會。
個人經驗,回答完畢。

㈧ 像intel和AMD需要對cpu編程嗎用的是匯編嗎cpu裡面有編譯器嗎

據說是傳說中的硬體編程……編譯器肯定是沒有了,因為CPU收到的代碼已經是最低級的機器碼了,不需要再進行編譯……

㈨ C語言問題 求位前輩 對於操作系統的字長是多少位 和C語言的關系不是很很了解

首先需要知道的是CPU字長(機器字長),這個是硬體決定的,指cpu同時參與運算的二進制位數,機器字長直接決定著機器可定址的虛擬空間地址大小。常見的機器字長有16位,32位,64位等。
其次是操作系統字長。 操作系統字長就是操作系統的位數,對於電腦操作系統來說,有32位64位兩種。操作系統字長是軟體的概念,依賴於硬體,但不一定相同。64位機器字長上可以安裝32位的操作系統,但是反之則不行。即操作系統字長不可高於機器字長。
C語言的編譯器是運行於操作系統之上的軟體,所以編譯器依賴於操作系統。編譯器字長不可高於操作系統。
C語言編譯器的字長,影響C語言的編譯運行,由C語言編譯器編譯出的可執行文件的運行字長,不能高於編譯器字長。
於是,綜合這幾個的關系,就是
C語言編譯出的軟體字長 ≤ C語言編譯器字長 ≤ 操作系統字長≤機器字長。

閱讀全文

與編譯器依賴於cpu嗎相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163