第十章 目標代碼生成

1
【單選題】下列關於絕對機器語言目標代碼說法錯誤的是()?

A、
在目標機上可以直接運行
B、
代碼中所有地址均已經完成了定位
C、
各個程序模塊可以分別獨立地編譯
D、
適合需要快速編譯執行的小型程序
正確答案: C 我的答案:C

答案解析:
絕對機器語言目標代碼中的地址已經完成了定位,可以直接執行,但是由於不能重定位,這種形式缺乏靈活性。在編譯過程中,通常要把整個源程序一起編譯,而不能獨立地編譯源程序中的各個程序模塊。一般只適用於需要快速編譯執行的小型程序。
2
【單選題】下列選項中,負責對可重定位目標代碼中的地址進行重定位的是()?

A、
裝入程序
B、
連接程序
C、
編譯器
D、
以上都不是
正確答案: A 我的答案:A

答案解析:
裝入程序負責把代碼加載到內存儲器中,以便執行。裝入程序可處理所有的與指定的基地址或起始地址有關的可重定位的地址,它使得可執行代碼更加靈活。
3
【單選題】以下說法不正確的是( )。

A、
源程序到目標程序的變換是等價變換,即兩者結構不同,但語義是一致的
B、
源程序和目標程序是等價關係
C、
目標代碼生成時,需要考慮目標計算機的指令系統
D、
窺孔優化是在中間代碼層次上進行的優化工作
正確答案: D 我的答案:D

答案解析:
窺孔優化是在目標代碼層次上進行的優化工作。其它三個選項的說法都是正確的。
4
【單選題】在目標代碼生成階段,符號表的主要用途是( )?

A、
中間代碼優化
B、
語義檢查
C、
語法檢查
D、
地址分配
正確答案: D 我的答案:D

答案解析:
在目標代碼生成階段,需要根據符號表進行地址分配,其餘三個選項不是目標代碼生成階段的任務。
5
【單選題】在下面類別語句的目標代碼生成過程中,不需要使用回填技術的是?。

A、
賦值語句
B、
goto語句
C、
條件語句
D、
循環語句
正確答案: A 我的答案:A

答案解析:
B,C,D中的三種語句在生成目標代碼的過程中,都需要使用跳轉指令,並且跳轉指令目的地址暫時無法確定,所以只能空缺,等待以後回填;而賦值語句無需使用跳轉指令。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章