3.2(1)机器语言与汇编语言之间的区别是什么?
(2)人们认为汇编语言比机器语言更容易编程的原因是什么?
解析
(1)机器语言指令是计算机内部表示各种运算的位模式。汇编语言是更易于人们阅读的机器语言版本,其中的每条指令都表示成能描述指令功能的一个文本字符串。
(2)在使用汇编语言编程时,汇编程序负责将汇编语言指令转换成机器语言指令,而不是由人来进行转换。通常,与对机器语言指令进行编码的数字相比,表示汇编语言指令的文本字符串更易懂。此外,由于需要用汇编程序将汇编语言指令转换成机器语言指令,从而可减少生成每条指令的机器语言表示形式时出错的可能性。
自修改程序
3.3目前,自修改程序比它在早期计算机上的应用更少一些,原因何在。
解析
主要有两个原因。首先,自修改代码要比非自修改代码更难调试,因为执行的程序不同于编写的程序。计算机速度更快时,与调试难度不断增大相比,自修改代码的性能优势就不那么重要了。
其次,在内存系统设计方面的改进降低了从自修改代码中获得的性能改进。
比较编译程序与汇编程序
3.4请简要说明,在程序的执行时问方面,编译程序质量对使用编译程序开发的程序的影响,与汇编程序的质量对使用汇编程序开发的程序影响相比,为什么前者的影响更大?
解析通常,汇编语言指令与机器语言指令之间存在着一一对应的关系。汇编程序将每条汇编语言指令转换成机器语言的表示形式。汇编程序转换正确时,生成的机器语言程序指令就与汇编语言源程序指令完全相同,只是编码不同而已。汇编程序并没有改变程序指令集,所以它对程序执行时间没有任何影响。
对照来看,编译程序确定汇编语言指令序列,这些指令执行由高级语言程序指定的计算。由于编译程序为程序创建了汇编语言指令序列,因此编译程序的质量会对最终程序的执行时间产生很大的影响。质量低劣的编译程序所创建的程序会做大量多余的工作,运行速度较慢,高质量的编译程序能消除那些多余的工作,会有较好的性能。
展开