计算机组成与体系结构
实验报告
random翻译
实验项目一
一、实验目的
通过了解高级语言源程序和目标机器代码的不同表示及其相互转换,深刻理解 高级语言和机器语言之间的关系,以及机器语言和不同体系结构之间的关系。
二、实验要求:
VC6.0中创建下列源程序
#include <stdio.h>
void main()
{
    int i=100;
    int j=-1;
    int k;
    k=i+j;
    printf("%d",k);
}
然后对该程序进行编译、链接,最终生成可执行目标代码。
三、实验报告
1.给出做实验的过程.
关键代码如下:
2. 给出源程序(文本文件)的内容(用十六进制形式表示)。
3. 给出可执行目标文件(二进制文件)的内容(用十六进制形式表示)。
4. VC6.0调试环境:设置断点、单步运行、变量的值(十进制、十六进制)、变量的地址、变量的存储。
断点设置如下:
变量的值十进制:
变量的值十六进制:
变量的地址:
5. VC6.0反汇编:查看源程序对应的汇编程序、可执行目标程序的二进制编码、了解如何给变量分配内存、系统函数程序段的调用。
6. 分析或回答下列问题。
1)分析同一个源程序在不同机器上生成的可执行目标代码是否相同。
不相同。因为不同的机器硬件的组成不同,因此同一个源程序在不同的机器上生成的目标文件不同。
2)你能在可执行目标文件中出函数printf()对应的机器代码段吗?能的话,请标示出来。
不能。因为源程序中的printf函数在可执行文件中已转换为机器语言。被翻译的机器语言中有printf函数,但是不知道是从哪一段开始翻译的。
3)为什么源程序文件的内容和可执行目标文件的内容完全不同?
源程序文件可以直接编写。可执行文件是被言翻译过后的。
四、实验总结和体会:
本次实验让我明白了通过vc6.0这个软件编写出来的高级语言源程序与目标机器代码的不同表示及其相互转换,深刻理解了内存的分配与机器码的相关知识,以及机器语言和不同体
系结构之间的关系,使得课本上的知识与实验上的知识相结合。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。