计算机组成原理实验求数组的和,计算机组成原理编程实验.pdf

计算机组成与系统结构 编程实验 计算机组成与系统结构 编程实验 为了更好地从程序员角度理解计算机组成和系统结构的内容 我们设计了一组编程实 验 这些实验与本课程所学内容密切相关 希望各位同学认真完成 可以相互讨论 但不能抄袭 如果抽查发现哪位同学抄袭的话 取消平时成绩 实验要求用标准 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 给出源程序 文本文件 和执行结果 2 根据实验结果 回答下列问题 1 float 类型和 double 类型的精度各是多少 2 在你的机器上 除数为 0 和 负数开方 分别是如何处理的 报告提交截止日期 报告提交截止日期 4 月 25 日 实验四 数据的存放顺序和对齐方式 第 2 章 实验目的 实验目的 了解数据在机器中的存放方式 实验要求 实验要求 设计一个程序以检查你的机器是大端方式还是小端方式 设计一个程序以检查内存变量 如结构或数组 是否按边界对齐 实验报告 实验报告 1 给出源程序 文本文件 和执行结果 2 回答下列问题 1 你的机器是大端方式还是小端方式 2 内存变量是否按边界对齐 报告提交截止日期 报告提交截止日期 4 月 25 日 实验五 类型转换和移位操作运算 第 3 章 实验目的 实验目的 了解高级语言中数据类型的转换和移位操作结果 从而能更好地理解指令系统设 计和计算机硬件设计所需满足的要求和需要考虑的问题 实验要求 实验要求 编程实现以下各种操作 1 给定一个 short 型数据 12345 分别转换为 int unsigned short unsigned int float 类型的数据 2 给定一个 int 型数据 2147483647 分别转换为 short unsigned short unsigned int float 类型的数据 3 给定一个 float 型数据 123456 789e5 转换成 double 型数据 4 给定一个 double 型数据 123456 789e5 转换成 float 型数据 5 按 short 和 unsigned short 类型分别对 12345 进行左移 2 位和右移 2 位操作 要求分别用十进制和十六进制形式打印输出以上各种操作的结果 实验报告 实验报告 1 给出源程序 文本文件 和执行结果 2 根据实验结果 回答下列问题 1 无符号数和带符号整数的扩展操作方式是否相同 各是如何进行的 2 补码整数 如 int 型数 是否总能转换为等值的 float 类型数据 为什么 3 float 型数据是否总能转换成等值的 double 型数据 为什么 4 长数被截断成短数后可能发生什么现象 为什么 5 C 语言中移位操作规则与操作对象的数据类型有关吗 6 左移 2 位和右移 2 位操作分别相当于扩大和缩小几倍 报告提交截止日期 报告提交截止日期 5 月 10 日 实验六 整数和浮点数的算术运算 第 3 章 实验目的 实验目的 通过检查高级语言中数据运算的不同结果 进一步理解机器代码在 CPU 中的执 行过程 从而为更好地学习指令系统设计和 CPU 设计打下良好的基础 实验要求 实验要求 编程计算下列表达式的值 1 unsigned int 型数据 1 4294967295 1 4294967295 2 int 型数据 2147483647 1 2147483648 1 3 float 型数据 1 0 123456 789e30 123456 789e30 1 0 123456 789e30 123456 789e30 要求分别用十进制和十六进制形式显示各种操作的结果 实验报告 实验报告 1 给出源程序 文本文件 和执行结果 2 分别给出每个运算结果的解释说明 3 以下是两个几乎一模一样的程序 但运行结果不一致 请收集课外相关资料 通过得到 的资料分析说明其原因 以下程序来自网站 程序 1 include double f int x return 1 0 x void main double a b int i a f 10 b f 10 i a b printf d n i 使用 gcc O2 编译程序 1 后运行 其输出结果是 0 也就是说 a 不等于 b 为什么 程序 2 include double f int x return 1 0 x void main double a b c int i a f 10 b f 10 c f 10 i a b printf d n i 同样使用 gcc O2 编译程序 2 运行后输出结果却是 1 也就是说 a 等于 b 为什么 报告提交截止日期 报告提交截止日期 5 月 10 日 实验七 cache 和程序访问的局部性 第 4 章 实验目的 实验目的 通过实际程序的执行结果 了解程序访问的局部性对带有 cache 的计算机系统性 能的影响 实验要求 实验要求 在以下程序中 修改或添加必要的语句 如计时函数等 以计算和打印主体程 序段的执行时间 分别以 M 10 000 N 10 M 1000 N 1000 M 10 N 10 000 执行程 序 A 和程序 B 以比较两个程序执行时间的长短 程序段 A assign array rows int i j a M N for i 0 i M i for j 0 j N j a i j i j 程序段 B assign array cols int i j a M N for j 0 j N j for i 0 i M i a i j i j 实验报告 实验报告 1 给出源程序 文本文件 和执行结果 2 对实验结果进行分析 说明局部数据块大小 数组访问顺序等和执行时间之间的关系 报告提交截止日期 报告提交截止日期 5 月 25 日

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值