实验二进制转换概念.docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《微机系统与接口技术》实 验 报 告实验二 数制转换实验学 院:应用物理与材料学院专 业:电子信息工程(光电工程)班级学号:130601/3113001607学生姓名:吴国超实验日期:2015年12月3日指导老师:李鹤喜 成 绩:五邑大学计算机学院接口与通信实验室二、数制转换实验2.1 实验目的1.掌握不同进制数及相互转换的程序设计方法,加深对数制转换的理解。2.熟悉程序调试的方法。2.2 实验设备PC机一台,(TD-PITE实验装置或TD-PITC实验装置一套)。2.3 实验内容计算机与外设间的数制转换关系如图2-1所示,数制对应关系如表2-1所示。图2-1 数制转换关系十六进制数转换为ASCII码由表2.1中十六进制数与ASCII码的对应关系可知:将十六进制数0H—09H加上30H后得到相应的ASCII码,AH—FH加上37H可得到相应的ASCII码。将四位十六进制数存放于起始地址为HEX的内存单元中,把他们转换为ASCII码后存入起始地址为ASC的内存单元中。2. 将ASCII码表示的十进制数转换为二进制数十进制表示为: (1)Di代表十进制数0,1,2,…,9;上式转换为:(2)由式(2)可归纳十进制数转换为二进制数的方法:从十进制数的最高位Dn开始作乘10加次位的操作,依次类推,则可求出二进制数的结果。程序流程图如图2-2所示。3.将十六位二进制数转换为ASCII码表示的十进制数十六位二进制数的值域为0~65535,最大可转换为五位十进制数。五位十进制数可表示为:Di:表示十进制数0~9将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D1~D4,并将它们转换为ASCII码。自行绘制程序流程图,编写程序可参考例程。例程中源数存放于3500H、3501H中,转换结果存放于3510H~3514H单元中。2.5 实验调试数据与结果十六进制数转换为ASCII码定义堆栈段,预留64个字的存储空间定义数据段,HEX为0EAD6H,ASC为4个“?”字节定义代码段。进入主函数,把数据段地址送到DS,循环计数次数0004H送到CX,取出HEX首地址送到SI,ASC首地址送到DI,然后把03H送到DI,使目的地址指向ASCII最低位,接着取出十六进制数到DX。来到A1,A2循环入口,DX中的数据送到AX中,取低4位,进行ASCII转换,然后存到目标地址中。目标地址DI自减1,指向次低位,接着把CX中的内容压入堆栈中并利用CL对235FH右移4位。把堆栈中的CX值推出,进行LOOP循环,CX自减1,并判断是否为0,若不为0,,继续回到A1,A2的循环中执行相同的步骤。直到CX为0,即0FAD6H中四个十六进制数都转换为ASCII了,取出转换后的ASCII码进行显示,最后调用4CH号功能结束程序。程序代码SSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDSDATA SEGMENTHEX DW 0eacbHASC DB 4 DUP(?),$DATA ENDS CODESEGMENTASSUME CS:CODE,DS:DATA,SS:SSTACKMAIN PROCMOV AX,DATA MOV DS,AXMOV CX,4 ;循环计数MOV SI,OFFSET HEX;十六进制数源地址 MOV DI,OFFSET ASC ;ASCII 码首地址 ADD DI,03H ;指向ASCII的最低位MOV DX,[SI] ;取十六进制数到DXA1:MOV AX,DXAND AX,000FH;取低4位CMP AL,10JB A2;小于0AH则转A2ADD AL,07H;在A~FH之间,需多加上7HA2:ADD AL,30H;转换为相应ASCII码MOV [DI],AL ;结果存入目标地址DEC DIPUSH CXMOV CL,04HSHR DX,CL;将十六进制数右移4位POP CXLOOP A1 MOV DX,OFFSET ASC ;显示转换后的ASCII码 MOV AH,09H INT 21H MOV AH,07H ;按任何键返回 INT 21HMOV AH,4CH ;程序终止返回DOSINT 21HMAIN ENDPCODEENDSEND MAIN 将ASCII码表示的十进制数转换

文档评论(0)

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

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

1亿VIP精品文档

相关文档