计算机组成实验报告汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机组成与体系结构
实验报告
班级:物联网工程1311
姓名:沈扬凯
学号: 2013198145
老师:项东升
实验项目一
一、实验目的
通过了解高级语言源程序和目标机器代码的不同表示及其相互转换,深刻理解高级语言和机器语言之间的关系,以及机器语言和不同体系结构之间的关系。
二、实验要求:
在VC6.0中创建下列源程序
#include
void main()
{
int i=100;
int j=-1;
int k;
k=i+j;
printf("%d",k);
}
然后对该程序进行编译、链接,最终生成可执行目标代码。
三、实验报告
1.给出做实验的过程.
关键代码如下:
2.给出源程序(文本文件)的内容(用十六进制形式表示)。
3.给出可执行目标文件(二进制文件)的内容(用十六进制形式表示)。
4.VC6.0调试环境:设置断点、单步运行、变量的值(十进制、十六进制)、变量的地址、变量的存储。
断点设置如下:
变量的值十进制:
变量的值十六进制:
变量的地址:
5.VC
6.0反汇编:查看源程序对应的汇编程序、可执行目标程序的二进制编码、了解如何给变量分配内存、系统函数程序段的调用。
6.分析或回答下列问题。
(1)分析同一个源程序在不同机器上生成的可执行目标代码是否相同。
不相同。因为不同的机器硬件的组成不同,因此同一个源程序在不同的机器上生成的目标文件不同。
(2)你能在可执行目标文件中找出函数printf()对应的机器代码段吗?能的话,请标示出来。
不能。因为源程序中的printf函数在可执行文件中已转换为机器语言。被翻译的机器语言中有printf函数,但是不知道是从哪一段开始翻译的。
(3)为什么源程序文件的内容和可执行目标文件的内容完全不
同?
源程序文件可以直接编写。可执行文件是被言翻译过后的。四、实验总结和体会:
本次实验让我明白了通过vc6.0这个软件编写出来的高级语言源程序与目标机器代码的不同表示及其相互转换,深刻理解了内存的分配与机器码的相关知识,以及机器语言和不同体系结构之间的关系,使得课本上的知识与实验上的知识相结合。
实验项目二
一、实验目的:
1.通过无符号数和带符号整数之间的相互转换来理解无符号数和补码整数的表示。
2.了解字符、汉字的机器表示。
3.了解IEE754浮点数在机器中的应用,特别是一些特殊值的处理。
二、实验要求:
1.编写程序分析C语言中不同类型数据在计算机内部的表示。
2.验证教材表2.2中的关系表达式的结果,并编程得出第二章习题8的表中结果。
3.通过编程得出float和double类型的精度(即十进制有效位的位数):检查“-8.0/0”、“sqrt(-
4.0)”的运算结果,并将“-8.0/0”和“-8/0”的运行结果进行比较。
三、实验报告:
1.分析下列源程序中的变量在机器内是如何表示的,并给出程序的执行结果,要求给出分析过程。
#include
void main(){
unsigned short i=65535;
int j=-2147483648;
int k=65536;
char c1='\n',c2='x';
float x=100.25671;
double y=567.89;
char *str="01as计算机\n0 1 a s\\";
printf("%u\n",j);
printf("%f\n",x);
printf("%1d\n",y);
printf("%s\n",str);
printf("%d\n",i*i);
}
根据实验结果,回答下列问题:
(1)你的机器字长多少位?int类型的位数、最小值和最大值
各是多少?
答:机器字长:32位;int类型位数:32位;最小值:-2147483648;最大值:2147483647
(2)在你的机器上,-1用int类型和unsiged int类型表示的结果分别是多少?
2.编写程序验证教材表2.2中的关系表达式的结果,并编程得出第二章习题8的表中结果。要求给出分析过程。
验证2.2:
3.通过编写程序回答下列问题(要求给出分析过程):
(1)float类型和double类型的精度各是多少?(即十进制有
效位的位数)
float精度是8位,double精度是16位。
(2)在你的机器上,“负数开方”是如何处理的?(如“-8.0/0”、
“sqrt(-4.0)”的运算结果)
(3)在你的机器上,整数除0和浮点数除0的运行结果各是什么?为什么会有不同的运行结果?并将“-8.0/0”和“-8/0”的运行结果进行比较。
-8/0:
-8.0/0:
四、实验总结和体会:
我了知道了无符号数和带符号整数之间的相互转换来理解无符号数和补码整数的表示,以及一些简单的字符和汉字的机器表示,此外还了解了IEE754浮点数在机器中的应用。
实验项目三
五、实验目的
1.了解数据在机器中的存放方式(存放顺序、对其方式)。
2.了解无符号数和带符号整数是如何进行扩展的。
3.不同数据类型之间是如何进行转换的。
六、实验要求:
1.设计一个程序以检验你的机器是大端方式还是小端方式。以
及检查内存变量(如结构或数组)是否按边界对其。
2.通过编程得出无符号数和带符号整数是如何进行扩展的。
3.编写程序说明不同数据类型之间进行转换时在表数范围和
精度上的变化。
(1)给定一个short型数据-12345,分别转化为int、unsigned
short、unsigned int、float类型的数据;
(2)给定一个int型数据2147483647,分别转化为short、