微机原理实验-副本_new_new教程解析.docxVIP

  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文档。上传文档
查看更多
PAGE  PAGE 33 实验一 基本程序编程和程序调试 实验目的 掌握数码转换等基本程序设计的技巧和方法。 熟悉DEBUG命令。 学会和掌握用DEBUG调试程序的方法。 实验设备 PC机一台,装有DOS基本系统 实验内容及步骤 用DEBUG建立、汇编和运行调试程序的操作。DEBUG是DOS系统支持的用于汇编语言源程序调试的系统软件。它共有19条命令完成相应的功能,命令及其格式可参阅附录一。 (二)数码转换程序及其调试 1、 将ASCII码表示的十进制数转换为二进制数 1)程序设计的算法及其程序 十进制数据可表示为: DI代表十进制数1,2,3,…9,0 上式可转换为: 由式(2)可归纳十进制数转换为二进制数的方法:从十进制的最高位Dn开始乘10加次位的操作,将结果再乘10再加下一次位,如此重复,则可求出二进制数结果来。程序流程及参考程序如图1-1。这里我们规定:被转换的ASCII码十进制数存放在3500H——3504H单位中。而转换结果存放在3510H——3511H单元中。 2)实验步骤 (1)输入程序并检查无误。 (2)在3500H——3504H单元存入十进制数12的ASCII码,即E3500H↙,并输入3030303132H。 (3)G=2000↙,运行程序,并用CTRL+C来中断程序返回监控状态。 (4)用D3510↙来查看结果,应为:3510 0C 00 (5)反复试几组数,考查程序的正确性。 地址(H) 助记符 注释 2000 MOV SI,3500 ;源地址 2003 MOV DI,3510 ;结果地址 2006 MOV BX,000A ;乘数 10 2009 MOV CX,0004 ;计数 200C MOV AH,00 ;AH 清零 200E MOV AL,[SI] ;取被转换数 2010 SUB AL,30 ;ASCII码变十进制数 2012 IMUL BX ;高位(AX)*(BX)送AX 2014 ADD AL,[SI+01] ;取下一位 1017 SUB AL,30 ;ASCII码减30变十进制数 2019 INC SI ;源地址指针+1 201A LOOP 2012 ;CX-1,若CX不等于零则继续 201C MOV [DI],AX ;若CX不等于零则存结果 201E INT 3 将十进制数的ASCII码转换为BCD码 1)程序流程和程序 设从键盘输入的五位十进制数的ASCII码已存放在3500H起始的内存单元内,把它转换成BCD码后,再按位分别存入350AH起始的内存单元内。???输入的不是十进制数的ASCII码,则对应存放结果的内容为“FF”。一字节ASCII码取其低四位即变为BCD码,程序流程图及考程序如图1-2所示。 2)实验步骤 输入程序并检查无误。 在3500H——3504H单元中存入五位十进制数的ASCII码,即 E3500↙,并输入31,32,33,34,35。 G=2000↙,运行以上程序。 D350A↙,显示结果为: 0000:350A 01 02 03 04 05 CC… 反复试几组数,考查程序的正确性。 地址(H) 助记符 注释 2000 MOV CX,0005;循环计数器赋初值 2003 MOV DI,3500;ASCII码首址 2006 MOV BL,FF; 错误标志送BL 2008 MOV AL,[DI];送ASCII码至AL 200A CMP AL,3A; 比较AL与3AH 200C JNB 2014; 不低于3A则转2014 200E SUB AL,30; 低于3A则取ASCII码的低四位 2010 JB 2014; 低于30则转2014 2012 MOV BL,AL; 否则AL内容送BL,取代FF 2014 MOV AL,BL; 结果或错误标志送AL 2016 MOV [DI+0A],AL 2019 INC DI 201A LOOP 2006 201C INT 3 将十六位二进制数转换为ASCII码表示的十进制数 1)程序及其流程 十

文档评论(0)

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

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

1亿VIP精品文档

相关文档