精选-答案版-微机原理实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《微机原理及接口技术》实验报告2013~2014学年第一学期班级姓名学号指导教师实验一Emu8086软件的使用一、实验目的1、熟悉汇编语言开发环境。2、掌握Emu8086软件使用方法。3、理解寻址方式的意义。二、实验环境1、硬件环境:微机。2、软件环境:Emu80864.07。三、实验内容1、安装及运行Emu8086将老师发给大家的emu8086软件安装在自己的微机上,然后双击运行桌面上的快捷方式Emu8086,单击“new”按钮,选择“COMtemplate”,然后单击“OK”按钮。准备在光标闪烁处输入代码。2、熟悉Emu8086的基本操作(1)有以下程序段,请正确填空。MOVAX,10000MOVBX,0E49AHADDAX,BXHLT;表示CPU停机该程序段执行后,AX=__0BAAH___,BX=_E49AH____,CF=__1___,OF=___0__,SF=___0__,ZF=__0__。(2)上机调试并验证。单步执行物理地址可以察看flags的各标志机器码的十进制表示机器码的十六进制表示①输入(1)中的程序段。②程序输入后,单击工具栏上的“emulate”按钮,开始执行程序。③认识Emu8086的指令执行界面,如上图所示,并开始单步执行指令,观察每条指令执行后的情况,与自己的思考相验证。④程序执行完毕,观察各寄存器的值以及flags中各状态的值,检测并纠正自己的错误答案,并找出错误的原因。(3)寻址方式已知DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,试写出以下各指令中源操作数的寻址方式,并计算出它们的物理地址。①MOVAX,[100H]源操作数的寻址方式是__直接寻址__________,源操作数的物理地址是_10100H__________。②MOVAX,[BP+10H]源操作数的寻址方式是__寄存器相对寻址___,源操作数的物理地址是_35210H__________。③MOVAX,100H[BX+DI]源操作数的寻址方式是_相对的基址变址寻址____,源操作数的物理地址是10224H___。(4)察看存储单元内容MOVAX,0100HMOVDS,AX;试试能否将这两条指令直接写为“MOVDS,0100H”MOVAX,1234HMOV[0200H],AXHLT第4条指令中的源操作数的寻址方式是_寄存器寻址__,目的操作数的逻辑地址是_0100h:0200h_________,思考该程序段的执行结果是什么?单击上图中最下方的“aux”按钮,选择“memory”,在随之出现的窗口的左上角文本框中输入要查询的存储单元的逻辑地址,找到该存储单元,察看其内容。实验成绩指导教师实验二MASM5的汇编语言上机过程一、实验目的1、熟悉汇编语言的上机环境2、掌握汇编程序的编辑、汇编、连接、运行等步骤二、实验环境1、硬件环境:微机。2、软件环境:Masm5.0、Emu80864.07。三、实验内容汇编语言的上机的一般步骤为:编辑(用编辑程序形成汇编语言源程序)、汇编(用汇编程序将源文件汇编成目标文件)、连接(用连接程序将目标程序转换为可执行文件)、调试运行(执行可执行性文件,若有错误,利用DEBUG调试程序进行调试,直到没有错误为止)。1、进入DOS系统单击windows的“开始”按钮,再单击“运行”命令,输入“cmd”命令,进入DOS模式。再利用相应的DOS命令,切换到masm目录下。2、编辑.asm源程序在DOS提示符下输入“edit001.asm”,建立一个汇编源程序文件,本次实验的程序是在屏幕上输出一个字符串“Thisisasampleprogram!”,具体程序如下:DATASEGMENTBUFDB'THISISASAMPLEPROGRAM!'DB0DH,0AH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAH,9LEADX,BUFINT21HMOVAH,4CHINT21HCODEENDSENDSTART3、汇编在dos提示符下输入命令__masm001.asm_________,若发现有语法错误,请回到源程序进行修改;若无错误,进行下一步。4、连接在dos提示符下输入命令__link001.obj___。5、运行在dos提示符下输入命令“001”,发现屏幕上输出“Thisisasampleprogram!”,实验完成。实验三字符串操作一、实验目的掌握汇编环境下字符串操作方法。二、实验环境1、硬件环境:微机。2、软件环境:Emu80864.07。三、实验内容字符串buf1是“hello!”,现将内存中的字符串buf1内容传送到buf2。1、编写程序运行Emu8086,选择“exetemplate”,根据题目要求输入并完整以下程序。DATASEGMENTBUF1DB'HELLO!'COUNTEQU_$-buf1________DATAENDSEXTRASEGMENTBUF2DB6DUP(0)EXTRAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:EXTRASTART:MOVAX,DATAMOVDS,AX_movax,extra___________________moves,ax__________________MOVCX,COUNTLEA_si____,BUF1LEA_di____,BUF2CLD_repmovsb________HLTCODEENDSENDSTART2、实验执行及观察分析保存并生成.exe文件,然后运行该程序,在仿真窗口观察其指令,发现程序运行时,DS=_0710h______,ES=__0711h______,从程序中很容易看出,buf1、buf2的偏移地址是_0_____。然后用实验一的方法,单击下方aux--memory,察看其内存单元,并输入两字符串的逻辑地址,最后对比程序运行前后内存中数据的变化。实验四汇编语言基本程序设计一、实验目的1、掌握汇编语言的顺序结构设计2、掌握汇编语言的分支结构设计3、掌握汇编语言的循环结构设计二、实验环境1、硬件环境:微机。2、软件环境:Emu80864.07。三、实验内容1、画图说明以下程序中数据在内存的存放形式,并写出程序运行后,AX的内容。DATASEGMENTBUFDB25,’AB’BUF1DW10,20,30,40DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBX,OFFSETBUFADDBX,6MOVAX,[BX]MOVAH,4CHINT21HCODEENDSENDSTART(1)数据段中的数据在内存的存放形式。略(2)程序运行后,AX寄存器的内容为__0___H。2、调试下面的程序、写出调试结果及程序的功能。DATASEGMENTADB23HBDB25HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,ACMPAL,BJZNEXT1MOVDL,'#'JMPNEXT2NEXT1:MOVDL,'='NEXT2:MOVAH,4CHINT21HCODEENDSENDSTART程序运行后,DL=____23______H。该程序的功能是:__测试数据区中的两数据是否相同,相同时DL=‘=’,不同时DL=’#’__3、已知以BUF为首地址的10个数(字节型),求其和(设和小于127),结果存放在RES单元(字节型)。DATASEGMENTBUFDB1H,3H,12H,5H,6H,7H,8H,9H,5H,2HRESDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,0MOVCX,0AHLEABX,BUFLP:ADDAL,[BX]INCBXLOOPLPMOVRES,ALMOVAH,4CHINT21HCODEENDSENDSTART程序运行后,RES单元的值为__40___H。4、在内存中有一数据块,起始地址为BLOCK,数据块中的数据有正有负,要求把其中的正负数据分开,分别放在BUF1、BUF2缓冲区中。请将下面的程序补充完整,并上机调试。DATASEGMENTBLOCKDB03H,45H,90H,87H,50H,99H,9EHCNTEQU$-BLOCKBUF1DBCNTDUP(?)BUF2DBCNTDUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEABX,BLOCKleasi,buf1LEADI,BUF2MOVCX,CNTNEXT:MOVAL,[BX]testal,80hJZZHMOV[DI],ALINCDIJMPA1ZH:MOV[SI],ALINCSIA1:INCBXloopnextMOVAH,4CHINT21HCODEENDSENDSTART实验四DOS中断和BIOS中断一、实验目的1、掌握BIOS及DOS功能调用的一般方法。2、掌握常用的DOS功能调用。二、实验环境1、硬件环境:微机。2、软件环境:Emu80864.07。三、实验内容分析并完整程序,观察运行结果1、从键盘输入一个小写字母,转换成大写字母并在显示器上输出。CODESEGMENTASSUMECS:CODESTART:MOVAH,01H;输入一个字符_int21h__________SUBAL,20H;小写字符转化为大写字符MOVDL,AL_movah,02h__________;输出单个字符INT21HMOVAH,4CHINT21HCODEENDSENDSTART2、已知以BUF开始的数据区存放若干个英文字母,将大写转换成小写,将小写转换成大写并输出。DATASEGMENTBUFDB‘asdfhIJKLMN’CNTEQU$-BUFDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX_leabx,buf_____________;用bx指向该数据区MOVCX,CNTNEXT:MOVAL,[BX]CMPAL,_61h_____;判断是否为小写字母JLDASUBAL,20HMOV[BX],ALJMPEXITDA:ADDAL,20HMOV[BX],ALEXIT:INCBXLOOPNEXTMOVBYTEPTR[BX],’$’;想一想,此处为什么要输入一个’$’MOVDX,OFFSETBUF;输出处理后的字符串MOVAH,09HINT21HMOVAH,4CHINT21HCODEENDSENDSTART3、用BIOS中断实现软件延时运行Emu8086,打开例子程序“traffic_lights.asm”,分析并运行程序。如果要将红绿灯的状态改变时间间隔修改为2s,则该程序的21-24行应变为:movcx,1ehmovdx,8480hmovah,86hint15h综合实验简单接口——8086控制LED一、实验目的1、掌握8086与简单外设之间的数据传送方式。2、掌握protues软件的设计仿真使用方法。3、掌握端口译码电路的分析设计方法。二、实验环境1、硬件环境:微机。2、软件环境:Emu80864.07、protues7.5。三、实验内容本实验是设计一个最简单的开关控制LED灯的计算机控制系统。工作原理:首先用8086CPU来读取一个8位开关的状态,然后8086根据此信息控制LED灯的亮灭,如图所示。1、安装protues7.5软件打开老师给的软件,双击setup.exe开始安装,然后根据“安装/破解/汉化说明.txt”中的1-3步进行操作。2、绘制8086控制LED的电路图单击“开始”--“程序”--“protues7professio

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功