《微机系统与接口技术》实 验 报 告实验二 数制转换实验学 院:应用物理与材料学院专 业:电子信息工程(光电工程)班级学号:130601/3113001607学生姓名:吴国超实验日期:2015年12月3日指导老师:李鹤喜成 绩:五邑大学计算机学院接口与通信实验室二、 ,加深对数制转换的理解。。 实验设备PC机一台,(TD-PITE实验装置或TD-PITC实验装置一套)。 实验内容计算机与外设间的数制转换关系如图2-1所示,数制对应关系如表2-1所示。图2-:将十六进制数0H—09H加上30H后得到相应的ASCII码,AH—FH加上37H可得到相应的ASCII码。将四位十六进制数存放于起始地址为HEX的内存单元中,把他们转换为ASCII码后存入起始地址为ASC的内存单元中。:(1)Di代表十进制数0,1,2,…,9;上式转换为:(2)由式(2)可归纳十进制数转换为二进制数的方法:从十进制数的最高位Dn开始作乘10加次位的操作,依次类推,则可求出二进制数的结果。程序流程图如图2-2所示。~65535,最大可转换为五位十进制数。五位十进制数可表示为:Di:表示十进制数0~9将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D1~D4,并将它们转换为ASCII码。自行绘制程序流程图,编写程序可参考例程。例程中源数存放于3500H、3501H中,转换结果存放于3510H~3514H单元中。 (1)定义堆栈段,预留64个字的存储空间(2)定义数据段,HEX为0EAD6H,ASC为4个“?”字节(3)定义代码段。进入主函数,把数据段地址送到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号功能结束程序。(4)程序代码SSTACK SEGMENTSTACKDW64DUP(?)SSTACK ENDSDATA SEGMENTHEX DW0eacbHASC DB4DUP(?),'$'DATA ENDS CODE SEGMENTASSUMECS:CODE,DS:DATA,SS:SSTACKMAIN PROCMOVAX,DATAMOVDS,AXMOVCX,4 ;循环计数MOVSI,OFFSETHEX ;十六进制数源地址MOVDI,OFFSETASC ;ASCII码首地址ADDDI,03H ;指向ASCII的最低位MOVDX,[SI] ;取十六进制数到DX A1: MOVAX,DXANDAX,000FH ;取低4位CMPAL,10JBA2 ;小于0AH则转A2ADDAL,07H ;在A~FH之间,需多加上7HA2: ADDAL,30H ;转换为相应ASCII码MOV[DI],AL ;结果存入目标地址DECDIPUSHCXMOVCL,04HSHRDX,CL ;将十六进制数右移4位POPCXLOOPA1MOVDX,OFFSETASC ;显示转换后的ASCII码MOVAH,09HINT21HMOVAH,07H ;按任何键返回INT21HMOVAH,4CH ;程序终止返回DOSINT21HMAIN ENDP CODE ENDSENDMAIN (5)(1)定义堆栈段,预留64个字的存储空间(2)定义数据段,NUM变量存入5个ASCII码:36H,30H,31H,31H,38H,相当于十进制数:60118。HEX变量预留存放转换后的十六进制结果。ASC存放最后的ASCII结果。(3)定义代码段
实验二进制转换 来自淘豆网m.daumloan.com转载请标明出处.