程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> cpu-C程序經過編譯後,最終生成的文件裡面是不是 機器碼?

cpu-C程序經過編譯後,最終生成的文件裡面是不是 機器碼?

編輯:編程綜合問答
C程序經過編譯後,最終生成的文件裡面是不是 機器碼?

如果是某一種機器碼,那應該只能用在某一種類型的的cpu上,但是現實是不管是AMD還是intel的都可以運行。而AMD和Intel的cpu指令集是不一樣的。那為什麼還能運行同一次編譯出來的軟件?

最佳回答:


amd和intel擁有一個共同的指令集,但是在此之上,intel和 amd,以及intel自己各代處理器,都有自己的不同的指令。

比如說Intel Pentium 4有SSE2,但是沒有SSE 4,AMD Athlon 64有3d now!,而所有的Intel處理器都沒有。

如果你的程序調用了不支持的指令,就會導致程序崩潰。但是一般C編譯器編譯的代碼不會,因為它們會添加額外的代碼判斷運行的處理器是否支持所用的指令,如果不支持會用別的指令代替,或者給出溫和的錯誤提示。

caozhy
cellsingle
caozhy
caozhy
caozhy
caozhy
cellsingle
caozhy
caozhy
cellsingle
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved