微机课设 (修复的).doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目 录 TOC \o "1-3" \h \z \u 1题目 1 2算法分析 1 2.1二进制数转换成10进制数 1 2.2二进制数转换为 8 进制数 1 2.3二进制数转换为 16 进制数 2 3流程图 2 3.1设计流程图 2 3.2程序流程图 4 3.3汇编程序 5 4调试运行结果 13 4.1调试运行结果如下图所示: 13 4.2 调试中遇到的问题 15 4.2.1 错误程序1 15 4.2.2 错误程序2 16 5小结 16 参考文献 18 数制转换 1题目 通过键盘输入一个二进制数,通过屏幕提示菜单选择转换成八进制,十进制或者十六进制数并显示。 2算法分析 2.1二进制数转换成10进制数 由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。 比如:1011.012=1*23+0*22+1*21+1*20+0*2-1+1*2-2 =(11.25)10 2.2二进制数转换为 8 进制数 由二进制数转换成八进制数可以 3 位二进制位编为一组(不够左侧补0),然后从右边开始每三位如下方式替换: 000 - 0, 001 - 1, 010 - 2, 011 - 3, 100 - 4, 101 - 5, 110 - 6, 111 - 7. 比如转换二进制数 1110101010100 那么分组为 001 110 101 010 100 按照转换方法对应转换 ?? 1???6???5???2???4 所以:(11101010100)2=(16524)8 2.3二进制数转换为 16 进制数 由二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。 转换为 16 进制 0000 - 0, 0001 - 1, 0010 - 2, 0011 - 3 0100 - 4, 0101 - 5, 0110 - 6, 0111 - 7 1000 - 8, 1001 - 9, 1010 - A, 1011 - B 1100 - C, 1101 - D, 1110 - E, 1111 – F 此时分组为 4 位二进制数为一组 比如转换二进制 0101010100101011010,分组: 0010 1010 1001 0101 1010 ??2??? A????9????5??? A 所以:(0101010100101011010)2=(2A95A)16 3流程图 3.1设计流程图 根据题意,设计流程图如下: 开 始 开 始 输入二进制数 输入二进制数 八进制 八进制 N Y 十进制 Y 十进制 八进制数 八进制数 十六进制数十进制数 十六进制数 十进制数 结 束 结 束 图1 设计流程图 3.2 程序流程图 根据题意,程序流程图如下: 图2 8进制转换 图3 16进制转换 图4 10进制转换 3.3汇编程序 汇编程序如下: data segment buff1 db 17 buff2 db ? buff3 db 17 dup(?) buff4 db 'O:1,D:2,H:3',0dh,0ah,'$' buff5 db 48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70 buff6 db 0dh,0ah,'$' mes db 'please enter a binary number',0dh,0ah,'$' data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea dx,mes ;取mes的偏移地址 mov ah,09 int 21h ;在屏幕上显示字符串 lea dx,buff1 ;取buff1的偏移地址

文档评论(0)

559997799 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档