目標代碼

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

目標代碼(Object Code)

目錄

什麼是目標代碼[1]

  目標代碼是指源代碼經過編譯程式產生的能被CPU直接識別的二進位代碼。

目標代碼的形式[2]

  目標代碼生成是以中間代碼作為輸入,將其轉換成特定機器的機器語言彙編語言作為輸出。在此以四元式序列作為它的加工對象,輸出目標代碼的形式有三種:具有絕對地址的機器語言程式,具有相對地址的機器碼程式和彙編指令程式。

  具有絕對地址的機器語言程式在存儲空間中有固定的存儲位置,一旦產生此種形式的目標代碼之後,便可立即執行,因此這種形式最為迅速有效,但它並不靈活,不適合大型程式。

  具有相對地址的機器語言程式由若幹個目標模塊組成,各個模塊中都包含目標程式中的一部分代碼,可將它們裝人到存儲空間的任何位置,然後由連接裝配程式將它們連接在一起之後執行。顯然,連接裝配程式增加了開銷,但這種形式有較大的靈活性,所以為許多編譯程式所採用。

  目標代碼生成程式可以產生彙編語言形式的目標代碼,這種形式在實現上要比前兩種形式容易。當然,這種形式的目標代碼還需經彙編後才能成為可執行代碼。

目標代碼的生成[3]

  目標代碼生成是編譯程式的最後一個工作階段,其任務是把經優化處理之後的中間代碼變換成特定機器上的機器語言程式或彙編語言程式,實現最終的翻譯工作。由於目標語言依賴於硬體系統,因而如何充分利用現有的寄存器以節省訪問記憶體的時間,合理地選擇執行速度快的指令,生成儘可能短且有效的目標代碼是這個階段考慮的主要問題。

  如果代碼生成程式以四元式形式的中間代碼序列作為輸入,在其生成目標代碼時,可假定每個四元式中的運算符及運算對象的數據類型均已知道,所需的全部類型轉換操作均已在中間代碼中得到體現。此外,如果出現在程式中的全部符號名運行時所需的存儲空間均已得到分配,它們所在的數據區編號及相對地址已分別填人符號表各相應登記項欄中。所以在四元式中,僅出現符號名在符號表中登記項的序號。

參考文獻

  1. 龍馬工作室編著.第8章 CSS+Div常見用法 Dreamweaver CS5從新手到高手.人民郵電出版社,2011.02.
  2. 張晶主編.第11章 目標代碼生成 編譯原理.哈爾濱工程大學出版社,2011.08.
  3. 王麗芳,張靜,李富萍等編著.第三章 程式設計語言和方法 電腦科學導論.清華大學出版社,2012.01.
本條目對我有幫助2
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目

本条目由以下用户参与贡献

方小莉.

評論(共0條)

提示:評論內容為網友針對條目"目標代碼"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

MBA智库
打开APP

以上内容根据网友推荐自动排序生成