微机原理实验报告

微机原理实验报告

ID:27016135

大小:1.36 MB

页数:31页

时间:2018-11-30

微机原理实验报告_第1页
微机原理实验报告_第2页
微机原理实验报告_第3页
微机原理实验报告_第4页
微机原理实验报告_第5页
资源描述:

《微机原理实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、华北电力大学科技学院实验报告课程名称:微机原理实验指导老师:郭军学生姓名:牛玺童班级:电气11k6学号:111904010415实验一数据转换实验一、实验目的(1)初步掌握在PC机上建立、汇编、链接和运行8086/88汇编语言程序的过程。(2)通过对两个验证性试验的阅读、调试、掌握不同进制数及编码相互转换的程序设计方法。(3)完成程序设计题,加深对数码转换的理解,了解简单程序设计方法。二、实验内容1.十六进制数转换为ASCII码设二字节十六进制数存放于其实地址为3500H的内存单元中,把他们转换成ASCII码后

2、,再分别存入起始地址为350A的四个内存单元中。从书上ASCII码表中可知十六进制数加30H即可得到0H~9H的ASCII码,而要得到AH~FH的ASCII码,则需再加7H。请根据所给流程图理清思路,总结出对应的若干要点。将流程图与参考程序相互。根据分析的结果将运行时内存的变化列写出来。学习并使用MASM或WAVE仿真软件分析程序运行过程中相关寄存器及相应内存的变化情况来验证自己的猜想,以巩固命令的学习,提高编程能力。-29-1.1程序流程图-29-1.2实验程序DATASSEGMENT;此处输入数据段代码DA

3、TASENDSSTACKSSEGMENT;此处输入堆栈段代码STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AX;此处输入代码段代码MOVCX,0004H;根据转换个数设定循环次数;(两字节十六进制数如6B2C对应有四个用十六进制表示的ASCII码表示,即四个字节)MOVDI,3500H;指向该两字节十六进制数起始地址,此时在调试窗口修改内存字节MOVDX,[DI];将地址3500H中的内容(6B2C)给

4、DXA1:MOVAX,DX;第一次时DX=6B2C,;因为想顺序取C、2、6、B,所以需要一个中间变量ANDAX,000FH;取低四位,第一次取到C,CMPAL,0AH;判断AL属于0~9,还是A~FJBA2;如果是0~9,则跳转到A2ADDAL,07H;若属于A~F,再加上07H后也是再加上30H即得到转换。A2:ADDAL,30H;0~9的ASCII码对应的十六进制比其;本身(注意:亦是十六进制)大30HMOV[DI+0AH],AL;将转码后的C,即43H给350AINCDI;将DI指向下一字节,用于存储转

5、码后的值,第一次自增后要存‘2’PUSHCX;功能是接下来要用到CX作为一个中间变量,;而刚才已经使用并且接下来还会用到CX的值,;也可以不用CX,用其他不用的寄存器或者直接立即数形式的。MOVCL,04H;若直接用立即数,可能不稳定,(原因不详)用一个中间变量。SHRDX,CL;右移四位,如第一次转码后,DX=6B2C,-29-;为下一次取低四位的2做好前提,将0010b移到低四位POPCX;执行完后,CX又用于计数LOOPA1;每一次转码后,执行完此句后,CX的值都要变化,;分别是3,2,1,0;正好四次。

6、MOVAH,4CHINT21HCODESENDSENDSTART1.3实验过程与心得1.3.1编程要点1.数据在内存空间中的存储情况要清晰;图1-1-2图1-1-3如上图所示图1-2为处理前的存储情况,通过调试中的内存修改来实现并检查,图1-3为最后期待的转码结果,通过查询内存来检查。2.基本功能的实现:分两种情况去转码。中间涉及到比较选择语句,可以通过标志位来理解学习JB的实现条件是由于标志位的变化。3.取与存两个“指针”的变化-29-(1)取时通过一个中间变量取经过右移四位后的低字节来依次选择C、2、B、6

7、;使用软件时,看AX经过“ANDAX,000FH”后是否取到了这些数。(2)每一次转码后存储时将指针在存储空间305A不断移动。每次存储后,可查询内存。(3)每一次循环过后,CX都要变化,也可同时学习PUSH、POP功能。1.3.2软件使用简介1.WAVE软件它可以将内存的变化及寄存器的变化实时展示出来,红色数据是新变化的值。查找内存时可通过右键转到地址即可,但需要输入物理地址。如此时偏移地址为3500H,而通过观察DI赋值前一状态ds为20H,则通过计算可知在3700H输入2C,3701H输入6B即可,双击修

8、改。可以与硬件连接做接口实验,但没有人机对话功能。在使用之前需要建立新项目。过程简介如下:选择8086仿真--右击模块文件--新建项目--假如已编ASM文件(最好一个文件夹中)--保存项目--全部编译--单步执行(F8)--观查内存变化。2.MASM软件它可以通过DEBUG调试窗口来进行观察,但需要有不同的命令输入去修改内存,查询内存,并且更新情况也不如WAVE直白,若有其他未考虑的某

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。