您好,欢迎访问三七文档
微机实验报告学院:###专业班级:##序号:##姓名:###实验名称:实验二:数码转码编程及程序调试实验日期:2016.04实验二数码转码编程及程序调试一.实验目的1.掌握不同进程数及编码相互转换的程序设计方法,加深对数码转换的理解;2.进一步熟悉键盘使用方法;3.进一步熟悉调试程序的方法二.实验设备装有汇编软件的IBMPC机一台三.实验内容1.将ASCII码表示的十进制数转换为二进制数。这里我们规定:被转换的ASCII码十进制数存放在3500h~3504h单位中。而转换结果在3510~3511单位中。2.将从键盘输入的五位十进制数的ASCII码已存在3500起始的内存单元中。把它转换成BCD码后,再按位分别存入3510起始的内存单元内。若输入的不是十进制的ASCII码,则显示FF.3.将十六位二进制数转换为ASCII码表示的十进制数。十六进制数的值域为0~65535,最大可转换为五位十进制数。4.十六进制数转换为ASCII码。设经过CPU处理后的十六进制存放在起始地址为3500H的内存中,把它们转换成ASCII码之后,再分别存入起始地址为3510的内存单元中。5.BCD码转换为二进制码。设四个二位十进制的BCD码存放在起始地址为3500H的单元中,转换出的二进制数码存入起始为3510的内存单元中。四.程序代码及运行结果实验1DATASEGMENTORG3500HSOURCE1DB30H,30H,30H,31H,32HORG3510HRESULTDW?ORG3520HCOUNTEQU4ORG3530HMULNUMDW10DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVCL,COUNTMOVSI,OFFSETMULNUMMOVAX,0MOVDX,0MOVBX,OFFSETSOURCE1ADDAL,BYTEPTR[BX]SUBAX,30HNEXT:MULWORDPTR[SI]INCBXADDAL,BYTEPTR[BX]XCHGAH,DHLAHFANDAH,01HADDAH,DHSUBAX,30HDECCLJNZNEXTMOVBX,OFFSETRESULTMOV[BX],AXRETCODEENDSENDSTART运行结果:3500~3504h单元存入30H,30H,30H,31H,32H,结果如下:3500~3504h单元存入31H,32H,33H,34H,35H,结果如下:实验2DATASEGMENTORG3500HSOURCEDB41H,32H,33H,24H,35HORG3510HRESULTDB5DUP(?)ORG3520HCOUNTEQU5DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVCX,COUNTMOVSI,OFFSETSOURCEMOVDI,OFFSETRESULTNEXT:MOVDL,0FFHMOVAL,[SI]CMPAL,39HJGNEXT1SUBAL,30HCMPAL,0JLNEXT1MOV[DI],ALINCDIINCSIDECCXCMPCX,0JNENEXTJEEXITNEXT1:MOV[DI],DLINCDIINCSIDECCXCMPCX,0JNENEXTJEEXITEXIT:RETCODEENDSENDSTART运行结果:3500~3504h单元存入41H,32H,33H,24H,35H,结果如下:3500~3504h单元存入31H,32H,33H,34H,35H,结果如下:实验3DATASEGMENTORG3500HSOURCEDW000CHORG3510HRESULTDB5DUP(?)ORG3520HCOUNTEQU5ORG3530HDIVNUMDW10DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVAX,SOURCEMOVCL,COUNTMOVBX,4NEXT:MOVDX,0DIVDIVNUMADDDX,30HMOVRESULT[BX],DLDECBXDECCLJNZNEXTRETCODEENDSENDSTART运行结果:在3500~3501H单元中存入000CH,结果如下:在3500~3501H单元中存入0A23H,结果如下:实验4DATASEGMENTORG3500HSOURCEDW203BHORG3510HRESULTDB4DUP(0)DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVDX,SOURCEMOVDI,OFFSETRESULTMOVCL,4NEXT:MOVAX,DXANDAX,0FHCMPAX,9JGNEXT2ADDAX,30HMOV[DI],ALINCDISHRDX,CLCMPDX,0JEEXITJNENEXTNEXT2:ADDAX,37HMOV[DI],ALINCDISHRDX,CLCMPDX,0JEEXITJNENEXTEXIT:RETCODEENDSENDSTART运行结果:3500~3501H单元中存入四位16进制数203BH,结果如下:3500~3501H单元中存入四位16进制数1AC3H,结果如下:实验5DATASEGMENTORG3500HSOURCEDB01H,02H,03H,04H,05H,06H,07H,08HORG3510HRESULTDW4DUP(0)DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVBL,0AHMOVCX,4MOVDI,OFFSETSOURCEMOVSI,OFFSETRESULTNEXT:MOVAL,[DI]MULBLINCDIMOVAH,0ADDAL,[DI]MOV[SI],AXINCSIINCSIINCDIDECCXCMPCX,0JNENEXTRETCODEENDSENDSTART运行结果:在3500~3507H单元中存入01H,02H,03H,04H,05H,06H,07H,08H,结果如下:在3500~3507H单元中存入05H,05H,05H,06H,03H,02H,03H,04H,结果如下:五.结果分析在给定的储存单元存入不同的数值,执行以上程序后都能各自地输出正确的结果,说明以上程序功能符合题目要求。
本文标题:微机实验报告
链接地址:https://www.777doc.com/doc-4786197 .html