计算机原理实验三实验报告.pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

实验三子程序及宏的使用

一、实验目的

1.练习使用子程序及宏。

2.练习使用功能调用(INT21H)中关于程序终止、字符输入及字符输出部分。

二、实验内容

1.从键盘输入10个一位或两位的十进制数,用压缩BCD码形式存入数据段1000H起

的单元中。输入完成后重新将十个数字输出在屏幕上,每个数在屏幕上显示成一行,共10

行。

2.编程从上面十个数中找出最大值,显示在屏幕上。要求合理编写算法,在各种输入

情况下都能找出最大值。

3.将十个数按从大到小的顺序排列在数据区中。

三、源代码

四、思考题

(1)若处理的是十六进制无符号数,程序应如何修改?

判断字符类型是否数字0~F时,判断字符是否在30H~39H或者40H~46H之间。

(2)若处理的是带符号数,程序又应作何修改?

除了上述判断字符类型是否合法外,在比较大小时,要使用带符号数的条件转移指令。

五、实验总结

1.编写和使用了子程序及宏。它们之间的区别有:

1)在源程序中,通过书写宏名来引用宏,而子程序是通过CALL指令来调用;

2)汇编程序对宏通过宏扩展来加入其定义体,宏引用多少次,就相应扩展多少次,

所以,引用宏不会缩短目标程序;而子程序代码在目标程序中只出现一次,调用子程序

是执行同一程序段,因此,目标程序也得到相应的简化;

3)宏引用时,参数是通过“实参”替换“形参”的方式来实现传递的,参数形式

灵活多样,而子程序调用时,参数是通过寄存器、堆栈或约定存储单元进行传递的;

4)宏引用语句扩展后,目标程序中就不再有宏引用语句,运行时,不会有额外的

时间开销,而子程序的调用在目标程序中仍存在,子程序的调用和返回均需要时间。

2.练习使用功能调用(INT21H)中关于程序终止、字符输入及字符输出部分。

3.通过修改简化了程序的代码,通过调试完善了程序的功能。

4.使用汇编语言编写较复杂程序时,应该先整理思路,画好流程图,然后通过此框架

开始编写底层的一些宏和子程序,编好之后,再编写主程序,通过调用子程序实现具体的功

能。

5.调试时,通过断点和单步可观察数据区的内容改变和标志位的改变,以此判断BUG

所在位置。

6.子程序和宏中可能会覆盖某个寄存器中的内容,在没有把握的情况下应该先PUSH,

结束时再POP出来,以免寄存器中的内容在不经意之间被改变,造成错误,有时候也造成

调试的困难。

7.使用转移指令时应该清楚程序指令到此处时针对不同的情况分别跳转到哪里,以及

接下来执行什么内容,执行的内容是否符合预期。最好为较大的子程序或者宏编写统一的出

口,这样结构比较清晰。

文档评论(0)

181****2790 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档