導航:首頁 > 源碼編譯 > 指令編譯器是對

指令編譯器是對

發布時間:2022-05-06 05:55:50

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

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

2. 指令集、編譯器、演算法、CPU

CPU就是用來計算的,CPU可以做不同的計算,每種計算是一個命令,你可以用命令通知CPU做這種計算,所有的命令構成了指令集。
你寫的代碼CPU是不懂的,需要翻譯成上面說的命令,這個翻譯者就是編譯器。
演算法跟他們的關系稍遠一些。如果把計算比作生產的話,那演算法就是配方和工藝,指導著從原材料到產品的生產過程。

希望能幫助到你。

3. 偽指令的原理

不要感到迷惑,偽指令是幫助編譯程序編譯而設置的指令,作用五花八門。
比如段描述符可以指定段起始邊界值,段模塊化組合屬性。數據和變數定義也是用到的偽指令。
這分兩個方面,一是我們的程序不只存在機器碼,它必須有一些人為規定的文件格式信息,程序之中用到的數據和變數,這些CPU並不執行的東西,然而又是程序所必須的。
還有一個方面,就是編譯器在編譯的時候需要知道一些預處理命令。不要認為編譯器是萬能的,實際上寫編譯器極其復雜,國內也沒有幾個公司做外包編譯器的。編譯器經過幾遍詞法掃描,句法分析等等,中間還要經過臨時用堆棧和表格存儲,最終才將編譯完成。為什麼規定匯編立即數的第一個數不能為字母?因為這樣可以讓編譯器省很多事情。
至於assume,也許只有閱讀masm的幫助文檔才能真正知道它在編譯中起到的作用。一個段假如 assume es:XX
那麼在這個段里 mov ax,[bx]實際上就會自動編譯成mov ax,es:[bx]
如果你有興趣,著名的《編碼的奧秘》和《編譯原理》兩本書將使你茅塞頓開。
我以為難得休息夠早了,沒想到各位居然。。。

4. 指令解碼器是做什麼的

指令解碼器(Instruction Decoder,ID)是控制器中的主要部件之一。計算機能且只能執行 "指令"。指令由操作碼和地址碼組成。操作碼表示要執行的操作性質,即執行什麼操作,或做什麼;地址碼是操作碼執行時的操作對象的地址。計算機執行一條指定的指令時,必須首先分析這條指令的操作碼是什麼,以決定操作的性質和方法,然後才能控制計算機其他各部件協同完成指令表達的功能。這個分析工作由解碼器來完成。 指令執行通過控制部件進行指令解碼,標量指令由標量處理機執行向量指令各Cache控制器監聽匯流排所有操作,並對操作做相應處理(修改或作廢),如MESI協議。
指令
計算機指令通常由操作碼和地址碼兩部分組成:
操作碼:指明計算機執行的某種操作的性質和功能;
地址碼:指出被操作的數據(簡稱操作數)存放在何處,即指明操作數地址,有的指令格式允許其他地址碼部分就是操作數本身。

解碼器
解碼器是組合邏輯電路的一個重要的器件,其可以分為:變數解碼和顯示解碼兩類。
變數解碼:一般是一種較少輸入變為較多輸出的器件,一般分為2n解碼和8421BCD碼解碼兩類。
顯示解碼:主要解決二進制數顯示成對應的十、或十六進制數的轉換功能,一般其可分為驅動LED和驅動LCD兩類。
解碼是編碼的逆過程,在編碼時,每一種二進制代碼,都賦予了特定的含義,即都表示了一個確定的信號或者對象。把代碼狀態的特定含義「翻譯」出來的過程叫做解碼,實現解碼操作的電路稱為解碼器。或者說,解碼器是可以將輸入二進制代碼的狀態翻譯成輸出信號,以表示其原來含義的電路。
根據需要,輸出信號可以是脈沖,也可以是高電平或者低電平。

過程
計算機執行指令時,從內存中取出的一條指令經數據匯流排送往指令寄存器中。指令的操作碼被送到指令解碼器中解碼,地址碼則送到地址形成部件。地址形成部件根據指令特徵將地址碼形成有效地址,送往主存的地址寄存器。對於轉移指令,要將形成的有效轉移地址送往程序計數器中,實現程序的轉移。操作控制器根據指令解碼器對於指令操作碼的解碼,產生出實現指令功能所需要的全部動作的控制信號。這些控制信號按照一定的時間順序發往各個部件,控制各部件的動作。

5. C語言編譯器與cpu中指令編譯器的區別

一個是軟體,一個是硬體。完全不一樣的東西。

6. c語言的編譯與處理器的指令集有關嗎一定要CISC嗎RISC可不可以

C語言只是用於描述問題和演算法的一種語言,而在實際機器上真實運行的卻是各處理器自己的機器指令。編譯器的工作就是將C語言翻譯為機器指令。對你的問題答復如下:1. C語言與指令系統沒有關系,但是編譯器翻譯的指令與指令系統有關系;2.無論CISC還是RISC,編譯器都可以將C語言翻譯為對應的機器指令。

7. 匯編指令、編譯器和CPU的問題

x86的指令集基本是向上兼容的,在新cpu上運行老代碼是可以的。
如果是全新的指令集,cpu廠家在設計時就會有指令集和匯編程序了,現在一般廠商至少提供c語言編譯程序。
如果自己開發編譯程序,前端(詞法分析到中間代碼生成)一般不用動,後端是要自己寫的。

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

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

9. 匯編器和編譯器有什麼區別

匯編器(Assembler)是將匯編語言翻譯為機器語言的程序。一般而言,匯編生成的是目標代碼,需要經鏈接器(Linker)生成可執行代碼才可以執行。
匯編語言是一種以處理器指令系統為基礎的低級語言,採用助記符表達指令操作碼,採用標識符表示指令操作數。作為一門語言,對應於高級語言的編譯器,需要一個「匯編器」來把匯編語言原文件匯編成機器可執行的代碼。常用的高級語言編譯器有Microsoft公司的MASM系列和Borland公司的TASM系列編譯器,還有一些小公司推出的或者免費的匯編軟體包等。

編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 目標代碼 (object code) → 鏈接器(Linker) → 可執行程序 (executables)
高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、Java、漢語編程等或匯編語言,而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。
對於C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的位元組碼(ByteCode)。最後運行的時候通過通用語言運行庫的轉換,編程最終可以被CPU直接計算的機器碼(NativeCode)

10. 編譯器與指令集

1.tc是16位的編譯器,它用於64位的程序開發。自然沒有對新的64位指令集支持。

2.樓主的理解有一些偏差:如同樓上所說,C語言是本地編譯和鏈接的,此次編譯鏈接成的可執行文件時針對本地機。其跨平台是在可用一個源文件在多平台編譯鏈接,但是其產生的目標文件和本地不同。
TC已經過時N久了,推薦樓主使用微軟的VS2008。

閱讀全文

與指令編譯器是對相關的資料

熱點內容
解壓包子洗了變粘了怎麼辦 瀏覽:828
635除以三十的簡便演算法 瀏覽:637
樂高ev3編程軟體安卓 瀏覽:335
u盤加密軟體費用 瀏覽:261
中國程序員年死亡率 瀏覽:837
尚德app發帖從哪裡刪除 瀏覽:801
哪裡有學中國象棋的app 瀏覽:115
虛擬機如何編譯bin 瀏覽:831
文件夾藍屏是怎麼回事 瀏覽:639
奧特佳壓縮機日產軒逸 瀏覽:581
隨申辦app在哪裡下載 瀏覽:877
哪裡下載千圖app 瀏覽:724
php打碼嵌入html文檔 瀏覽:459
java如何彈出文件夾選擇框選擇文件路徑 瀏覽:539
saveaspdf的插件 瀏覽:25
電腦文件夾右鍵點擊總是未響應 瀏覽:6
失業的程序員35 瀏覽:265
windowscmd怎麼編譯 瀏覽:277
游戲反編譯的apk無法安裝 瀏覽:987
e盤打不開拒絕你訪問該文件夾 瀏覽:51