第十章 目标代码生成

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中的三种语句在生成目标代码的过程中,都需要使用跳转指令,并且跳转指令目的地址暂时无法确定,所以只能空缺,等待以后回填;而赋值语句无需使用跳转指令。

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