微机原理与接口技术实验四报告十六进制数转换成 ASCII 码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子信息专业实验报告

课程微机原理与接口技术实验

实验题目十六进制数转换成ASCII码

学生姓名lz评分

学号20171414xxxxxx班级

同实验者无

实验时间2019.11.2上午地点望江实验室基教B520电子信息学院专业实验中心

一、实验目的

1、掌握十六进制数转换成ASCII码以及掌握高位与低位分离的处理方法;

2、掌握计算机常用ASCII码转换成十六进制数及组合;

3、掌握循环程序的设计,以及循环次数等的修改。

二、实验内容(含技术指标)

十六进制数转换成ASCII码:

1、按要求编写将十六进制转换成ASCII码的程序;

2、编译链接并对程序进行调试:在调试框中设置寄存器DS的值;先用特殊数据9AH、0A9H对程序进行测试,单步执行每条指令,完成基本功能并记录;

3、修改循环次数,将0~FH转换成ASCII码并记录。

ASCII码转换成十六进制数:

1、按照要求编写ASCII码转换成十六进制数的程序;

2、编译链接并对程序进行调试:在调试框中设置寄存器DS的值;先用特殊数据39、41、41、39对程序进行测试,单步执行每条指令,完成基本功能并记录;

4、修改循环次数,将30、31、32、33、34、3

5、3

6、3

7、3

8、3

9、41、42、43、44、45、46转换成十六进制数并记录。

三、实验仪器(仪器名称、型号,元器件名称、清单,软件名称、版本等)

1、联想笔记本电脑Windows10系统

2、Masm for Windows集成实验环境2015

四、实验原理(基本原理,主要公式,参数计算,实现方法及框图,相关电路等)

1、由十六进制数与ASCII码之间关系可知:0至9的数转换成ASCII码时,作加30H操作;A至F 的数转换成ASCII码时,作加37H操作。41-46的ASCII码转换成16进制数时,作减37H操作;30-39的ASCII码转换成16进制数时,作减30H操作。

2、SHR:逻辑右移指令,将目的操作数顺序右移1为或CL寄存器指定的位数。逻辑右移1位时,目的操作数的最低位移到进位标志位CF,最高位补0。

SHL:逻辑左移指令,将目的操作数顺序左移1位或CL寄存器中指定的位数。左移一位时,操作数的最高位移入进位标志位CF,最低位补零。

CMP:比较指令,将目的操作数减去源操作数,结果不送回目的操作数,若CF=1则说明有借位。

AND:逻辑与指令,将目的操作数与源操作数按位进行逻辑“与”运算,并将结果送回目的操作数。

3、int n指令:引发一个n号中断的中断过程。在此程序里程序在执行过程中遇到int3就暂停,可查看此时寄存器或内存的临时数据,按执行命令则继续执行。

4、—U检查程序;—R检查、设置所需寄存器;—E设置内存单元;—T单步执行;G=起始地址停止地址:分段执行;G停止地址(断点地址):从当前IP开始执行;G=起始地址,直到程序结束。

5、十六进制转ASCII码程序框图和ASCII码转十六进制程序框图如附图所示。

、编写程序:

内存单元的

2、ASCII码转换成十六进制数

当DI寄存器1010H-1013H分别为39、41、41、39,由-d3000:1000得:

七、实验数据分析(对实验结果的评价,误差分析,出现故障原因及排除方法,回答思考题等)

一、数据分析

十六进制数转换成ASCII码:

1、用9AH,0A9H测试程序时,对于9AH,先进行高四位9的ASCII码的转换,因为9是小于A的,故进行加30H的操作,可得9的ASCII为39;然后进行低四位A的ASCII码的转换,A是大于9的,故进行加37H的操作,得到A的ASCII码为41。同理可以分析0A9H。观察实验结果知,结果符合理论。

2、修改循环次数CL=8后,进行01H,23H,45H,…,EFH的ASCII码转换。同上分析,当数大于9时,进行加37H的操作,否则,进行加30H的操作。故易得0~FH的ASCII码应该依次为30、31、32、3

3、3

4、3

5、3

6、3

7、3

8、3

9、41、42、43、44、45、46。显然,实验结果符合理论。在原始数据单中,由于记录的疏忽,多写了一个40。

ASCII码转换成十六进制数:

1、用特殊数据39、41、41、39测试程序,先进行41的转换,由于41大于等于41,故进行减37H 操作得到十六进制数为A,然后进行39的转换,由于39小于41,故进行减30操作,再左移四位,得到90H,将AH与90H相加合并得十六进制为9AH,同理可将41、39分别转化成十六进制数0A9H。观察实验结果知,结果符合理论。

2、修改循环次数CL=8,进行ASCII码30,31…39,41…46的转换,同上可得,转换后结果为十六进制数01H,23H,45H…,EFH。观察实验结果知,结果符合理论。

二、老师验收所问的问题:

为什么将十六进制数01H,23H,45H,…,EFH转换成ASCII码后,有ASCII码40?

答:本次实验程序及调试结果均是正确的,ASCII码40是因为从调试框中抄写结果到原始数据单上时太过粗心,以至于多抄写了一个40。以后不管做什么实验都必须吸取本次教训,必须要细心记录处理数据。

三、思考题

1、寄存器不够用时,可采取何种方法解决?

答:可以通过调用内存地址来解决这个问题。

2、分离与组合十六进制数应注意那些事项?

答:(1)分离时应要注意屏蔽掉不需要的数,例:分离出低四位时,应该要屏蔽高四位;还注意移动次数的设定,例如分离高四位时,需要先右移四次,次数不能错,否则结果就不正确了;(2)组合十六进制数时,应该要注意位的对应,高位的应该要放在高位,低位的应该放在低位,不能放错。

3、如何保证分支程序正常运行?

答:在汇编语言中,常利用条件转移指令来实现分支程序。为了使分支程序正常运行,首先应执行影响有关的标志位状态的指令,然后才能用条件转移指令测试这些标志,以确定程序是否转移。其次,转移指令的下一条指令到目标地址之间的距离必须在-128~+127的范围内,否则不能正常运行。

八、参考文献

《微机原理与接口技术》第二版何小海严华主编,科学出版社

《电子信息专业实验教程》赵刚主编

九、实验体会(对实验的看法、改进建议等)

通过本次微机原理与接口技术实验,我学会了十六进制数和ASCII码之间的相互转换,掌握了循环程

序设计与调试方法。同时,我更加熟练地运用Masm for Windows集成实验环境。

老师验收时题的问题,让我意识到了自己的粗心的问题,以后在做实验时,必须要细心记录处理数据,

避免出现低级错误。

相关文档
最新文档