字符及字符串输入输出与顺序程序设计实验实验报告.docVIP

字符及字符串输入输出与顺序程序设计实验实验报告.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.. 字符及字符串输入输出与次序程序设计实验 实验报告 实验目的 1、学习和掌握字符及字符串的输入输出方法。 2、掌握次序程序的设计方法。 3、进一步掌握调试工具的使用方法。 实验预习要求 1、复习DOS功能调用顶用于字符输入(功能号01H)、字符输出(功能号02H)、字符串 输入(功能号为0AH)以及字符串输出(功能号09H)的调用方法(详赐教材)。 2、复习BCD码运算调整指令。 3、依据“实验内容”中给出的源程序框架编写完好的源程序,以便实验时调试。 4、从“实验习题”中任选一道题目,编写源程序,以便上机调试。 实验内容 从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。 1、问题剖析 比方使用功能号为01H的用于实现单个字符输入的DOS功能调用接收从键盘输入的 两个十进制数8和6,这时计算机内部获得的是这两个数的ASCII码值38H和36H。因为 数字09的ASCII码值与其代表的数值之间相差30H,所以将其减去30H 即可获得以非压 缩型BCD数形式表示的十进制数08H和06H,使用ADD指令对它们进行相加后结果为 0EH),明显需要用非压缩型BCD数加法调整指令对ADD的运算结果进行调 整,调整后获得两个非压缩型BCD数01H和04H,将它们分别加上30H 后变成其对应的 ASCII码31H(1的ASCII码)和34H(4的ASCII码),而后调用功能号为02H用于单个 字符输出的DOS功能调用将它们显示出来。综上所述,需要考虑以下问题。 (1)从键盘输入一个一位十进制数的方法 经过功能号为1的DOS功能调用实现从键盘输入一个字符,格式以下: MOVAH,01H INT21H;此时程序等候用户键入,键入字符的ASCII码值存在AL中 SUBAL,30H;减去30H后获得键入数字所代表的数值 (2)提示信息字符串的显示 经过功能号为9的DOS功能调用实现字符串显示,注意字符串的最后一个字符必要为’$。’指令格式以下: MOVDX,OFFSETINFOR1;INFOR1为在数据段中定义的要显示的字符 串 ;. .. MOVAH,09H INT21H (2)非压缩型BCD数加法调整指令的使用 设从键盘输入的数值已寄存在寄存器AL,BL中,可用以下程序达成数据相加和调整操作: XORAH,AH ADDAL,BL AAA; 履行该指令后,AH中为和的十位上的数字,AL中为个位上的数字请读者考虑,为何要使用指令“XORAH,AH”,不用行否? (3)计算结果的显示 履行完AAA指令后,只要分别将AH(十位上的数值)和AL(个位上的数值)加上 30H,并挨次调用功能号为2的DOS功能调用来显示字符。详细指令代码以下: PUSH AX MOV DL,AH ADD DL,30H MOV AH,02H INT 21H POP AX MOV DL,AL ADD DL,30H MOV AH,02H INT 21H 2、源程序框架 DATA SEGMENT INFOR1 DBPleaseInputtheFirstData(10):$ INFOR2 DB0AH,0DH,PleaseInputtheSecondData(10):$ INFOR3DB0AH,0DH,TheResultis:$;0DH和0AH分别为非显示 字符回 ;车和换行的ASCII码值,美圆符号“$”为字符串结束标记,不可以省略。 DATA ENDS CODE SEGMENT ASSUMECS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX 显示提示信息INFOR1并从键盘接收一个字符的指令序列 SUB AL,30H MOV BL,AL 显示提示信息INFOR2并从键盘接收一个字符的指令序列 SUBAL,30H 乞降并调整指令序列 ;. .. PUSHAX POPAX 显示提示信息INFOR3的指令序列 PUSHAX 显示十位及个位上数字的指令序列 MOVAH,4CH INT21H CODEENDS ENDSTART 3、程序调试 源程序编写达成后,先静态检查,无误后,对源程序进行汇编和连结,生成可履行文 件。在DOS命令提示符下运转该程序,剖析运转结果能否正确。若结果不正确,使用DEBUG对其进行调试。 实验习题 1、设a,b,c,d为四个压缩型BCD数,它们被寄存在内存dbcd开始的4个储存单元中,计 算a+b+c+d,并将结果在屏幕上显示出来(注意压缩型BCD数的表示方法:十进制数38表示成压缩型BCD数时应写成38H)。程序编写达成并运转正确后,翻开源程序,改变 a,b,c,d的内容,而后从头进行汇编、连结并运转程序,检查程序运转结果与手工计算结果能否符合。下边给出几组实验用数据: a=11,b

文档评论(0)

158****2773 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档