实验三代码转换程序设计..docxVIP

  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.运用子程序进行程序设计.二.实验内容: 1.从键盘上输入若干两位十进制数,寻找其中的最小值,然后在屏幕上显示出来. 2.两个十进制数之间的分隔符,输入结束标志自定,但要在报告中说明. 3.对输入要有检错措施,以防止非法字符输入,并有适当的提示. 4.将整个程序分解为若干模块,分别用子程序实现.在报告中要给出模块层次图.三、创新功能:1、成功避免空格影响,在输入数据时,用户可以键入无限多用于分隔的空格,不会影响程序的输入,按回车结束一串待比较数的输入。2、扩充了题目要求,将判断范围扩展到负数领域,在一串数中允许有负数输入,且可以输出最小数。运行结果如下,可以看到,负数存在时仍可正常判断,以回车作为结束标志四.预习题: 1.如何将输入的两个字符(0 -- 9)变为十进制或二进制数?答:将(高位ASCII码-‘0’)*10+低位ASCII码-‘0’即为对应10进制数。将高位ASCII码-‘0’后左移一位保存,再左移两位,求两者之和,在加上低位ASCII码-‘0’则可通过移位转移成二进制数。 2.如何将选出的最小值(二进制或十进制)变为 ASCII 码再进行显示?答:可将两位数除10,对AL中的商+‘0’显示,AH中的余数+‘0’显示。 3.你觉得采用二进制运算还是十进制运算更适合于这个实验?答:二进制运算。直接通过ASCII码高低位判断大小。五、流程图:开始是是是是更新BH,BL更新CH,CL合法输入?读下一个字符显示不合法,终止程序判断是否为最小正数合法输入?判断是否为最小负数读下一个字符是否输入‘-’号输出最小值判断字符是否为回车是判断当前输入是否为空格六、代码分析JUDGE MACRO; 判断字符是否合法 CMP AL,0 JB WRONG ;不合法转去wrong处执行 CMP AL,9 JA WRONG ENDMPRESENT MACRO X,Y ;显示两个字符 MOV AH,02H MOV DL,X INT 21H MOV AH,02H MOV DL,Y INT 21H ENDMINPUT MACRO;从键盘读取字符 MOV AH,01H INT 21H ENDMDATA SEGMENTSTRING DB The min is:,$STRING1 DB 0DH,Input illegal!,$STRING3 DB Please input number: ,$DATA ENDSSTACK SEGMENT STACK DB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART: MOV DX,SEG DATA MOV DS,DX MOV BH,9+0;BH中存放正的最小值的十位,并将其转换为ASCII码 MOV BL,9+0;BL中存放正的最小值的个位 MOV CH,0;CH中存放负的最小值的十位 MOV CL,0;CL中存放负的最小值的十位MOV AH,09H MOV DX,SEG STRING3 MOV DS,DX LEA DX,STRING3 INT 21HLOOP1: INPUT CMP AL,20H JZ LOOP1;循环找到第一个不是空格的字符 CMP AL,0DH;判断是否输入结束 JZ NEAR PTR RA CMP AL,-;判断数的符号 JZ NEAR PTR NEGT;负数则转去NEGT处执行 JUDGE;判断数的合法性 CMP AL,BH;输入的值与最小正数的十位相比较 JNA NEXT;当前输入的值有可能比得到的最小数小K: INPUT;把下一个不符合条件的字符读出 JMP NEAR PTR LOOP1RA: JMP NEAR PTR EXITWRONG: CALL ILLEGAL JMP NEAR PTR ENDDNEXT: MOV BH,AL;判断当前输入的正数是否为最小数 INPUT JUDGE CM

文档评论(0)

sfkl + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档