南京大学《计算机组成原理》绝密编程实验
《计算机组成与系统结构》编程实验
为了更好地从程序员角度理解计算机组成和系统结构的内容,我们设计了一组编程实验,这些实验与本课程所学内容密切相关。
希望各位同学认真完成,可以相互讨论,但不能抄袭。如果抽查发现哪位同学抄袭的话,取消平时成绩。
实验要求用标准C (ANSI C)语言实现,实验报告以电子文档的形式提交到系FTP服务器中。
实验一 hello.c可执行程序的生成(第1章)
实验目的:通过了解高级语言源程序和目标机器代码的不同表示及其相互转换,深刻理解高
级语言和机器语言之间的关系,以及机器语言和不同体系结构之间的关系。
实验要求:对教材1.3.5节给出的hello.c源程序进行编译、链接,最终生成可执行目标代码。 实验报告:
1. 说明你做实验的过程(重要步骤用屏幕截图表示)。
2. 给出源程序(文本文件)的内容(用十六进制形式表示)。
3. 给出可执行目标文件(二进制文件)的内容(用十六进制形式表示)。
4. 分析或回答下列问题。
(1)分析同一个源程序在不同机器上生成的可执行目标代码是否相同。
提示:从多个方面(如ISA、OS和编译器)来分析。
(2)你能在可执行目标文件中找出函数printf ()对应的机器代码段吗?能的话,请标示出来。
(3)为什么源程序文件的内容和可执行目标文件的内容完全不同?
报告提交截止日期:4月10日
实验二 无符号数和带符号整数的表示(第2章)
实验目的:通过无符号数和带符号整数之间的相互转换来理解无符号数和补码整数的表示。 实验要求:验证教材表2.2中的关系表达式的结果,并编程得出第二章习题8的表中结果。 实验报告:
1. 给出源程序(文本文件)和执行结果。
2. 根据实验结果,回答下列问题。
(1)你的机器字长多少位?int类型的位数、最小值和最大值各是多少?
(2)在你的机器上,-1用int类型和unsiged int类型表示的结果分别是多少? 报告提交截止日期:4月25日
实验三 浮点数的表示(第2章)
实验目的:了解IEEE 754浮点数在机器中的应用,特别是一些特殊值的处理。 实验要求:通过编程得出float和double类型的精度(即十进制有效位的位数); 编程检查“-8.0/0”、“sqrt(-4.0)”的运算结果。
实验报告:
1. 给出源程序(文本文件)和执行结果。