1、答案版微机原理实验报告微机原理及接口技术 实验报告 20132014学年第一学期 班 级姓 名学 号指导教师实验一 Emu8086软件的使用一、实验目的1、熟悉汇编语言开发环境。2、掌握Emu8086软件使用方法。3、理解寻址方式的意义。二、实验环境1、硬件环境:微机。2、软件环境:Emu8086 4.07。三、实验内容1、安装及运行Emu8086将老师发给大家的emu8086软件安装在自己的微机上,然后双击运行桌面上的快捷方式Emu8086,单击“new”按钮,选择“COM template”,然后单击“OK”按钮。准备在光标闪烁处输入代码。2、熟悉Emu8086的基本操作(1)有以下程序段
2、,请正确填空。 MOV AX,10000 MOV BX,0E49AH ADD AX,BX HLT ;表示CPU停机 该程序段执行后,AX=_0BAAH_,BX=_E49AH_,CF=_1_,OF=_0_,SF=_0_,ZF=_0_。(2)上机调试并验证。 输入(1)中的程序段。 程序输入后,单击工具栏上的“emulate”按钮,开始执行程序。 认识Emu8086的指令执行界面,如上图所示,并开始单步执行指令,观察每条指令执行后的情况,与自己的思考相验证。 程序执行完毕,观察各寄存器的值以及flags中各状态的值,检测并纠正自己的错误答案,并找出错误的原因。(3)寻址方式已知DS=1000H,E
3、S=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,试写出以下各指令中源操作数的寻址方式,并计算出它们的物理地址。 MOV AX,100H源操作数的寻址方式是_直接寻址_,源操作数的物理地址是_10100H_。 MOV AX,BP+10H源操作数的寻址方式是_寄存器相对寻址_,源操作数的物理地址是_35210H_。 MOV AX,100HBX+DI源操作数的寻址方式是_相对的基址变址寻址_,源操作数的物理地址是10224H_。(4)察看存储单元内容 MOV AX,0100HMOV DS,AX ;试试能否将这两条指令直接写为“MOV DS,0
4、100H”MOV AX,1234HMOV 0200H,AXHLT第4条指令中的源操作数的寻址方式是_寄存器寻址_,目的操作数的逻辑地址是_0100h:0200h_,思考该程序段的执行结果是什么?单击上图中最下方的“aux”按钮,选择“memory”,在随之出现的窗口的左上角文本框中输入要查询的存储单元的逻辑地址,找到该存储单元,察看其内容。实验成绩 指导教师 实验二 MASM5的汇编语言上机过程一、实验目的1、熟悉汇编语言的上机环境2、掌握汇编程序的编辑、汇编、连接、运行等步骤二、实验环境1、硬件环境:微机。2、软件环境:Masm5.0、Emu8086 4.07。三、实验内容汇编语言的上机的一
5、般步骤为:编辑(用编辑程序形成汇编语言源程序)、汇编(用汇编程序将源文件汇编成目标文件)、连接(用连接程序将目标程序转换为可执行文件)、调试运行(执行可执行性文件,若有错误,利用DEBUG调试程序进行调试,直到没有错误为止)。1、进入DOS系统单击windows的“开始”按钮,再单击“运行”命令,输入“cmd”命令,进入DOS模式。再利用相应的DOS命令,切换到masm目录下。2、编辑.asm源程序在DOS提示符下输入“edit 001.asm”,建立一个汇编源程序文件,本次实验的程序是在屏幕上输出一个字符串“This is a sample program!”,具体程序如下:DATA SEG
6、MENT BUF DB THIS IS A SAMPLE PROGRAM! DB 0DH,0AH,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AH,9 LEA DX,BUF INT 21H MOV AH,4CH INT 21H CODE ENDS END START3、汇编在dos提示符下输入命令_masm 001.asm_,若发现有语法错误,请回到源程序进行修改;若无错误,进行下一步。4、连接在dos提示符下输入命令_link 001.obj_。5、运行在dos提示符下输入命令“0
7、01”,发现屏幕上输出“This is a sample program!”,实验完成。实验三 字符串操作一、实验目的掌握汇编环境下字符串操作方法。二、实验环境1、硬件环境:微机。2、软件环境:Emu8086 4.07。三、实验内容字符串buf1是“hello!”,现将内存中的字符串buf1内容传送到buf2。1、编写程序运行Emu8086,选择“exe template”,根据题目要求输入并完整以下程序。DATA SEGMENT BUF1 DB HELLO! COUNT EQU _$-buf1_ DATA ENDS EXTRA SEGMENT BUF2 DB 6 DUP(0) EXTRA E
8、NDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:EXTRASTART: MOV AX,DATA MOV DS,AX _mov ax,extra_ _mov es,ax_ MOV CX,COUNT LEA _si_,BUF1 LEA _di_,BUF2 CLD _rep movsb_ HLTCODE ENDS END START2、实验执行及观察分析保存并生成.exe文件,然后运行该程序,在仿真窗口观察其指令,发现程序运行时,DS=_0710h_,ES=_0711h_,从程序中很容易看出,buf1、buf2的偏移地址是_0_。然后用实验一的方法,单击下方aux
9、-memory,察看其内存单元,并输入两字符串的逻辑地址,最后对比程序运行前后内存中数据的变化。实验四 汇编语言基本程序设计一、实验目的1、掌握汇编语言的顺序结构设计2、掌握汇编语言的分支结构设计3、掌握汇编语言的循环结构设计二、实验环境1、硬件环境:微机。2、软件环境:Emu8086 4.07。三、实验内容1、画图说明以下程序中数据在内存的存放形式,并写出程序运行后,AX的内容。DATA SEGMENT BUF DB 25,ABBUF1 DW 10,20,30,40DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MO
10、V DS,AX MOV BX,OFFSET BUFADD BX,6MOV AX,BXMOV AH,4CH INT 21H CODE ENDS END START(1)数据段中的数据在内存的存放形式。略(2)程序运行后,AX寄存器的内容为_0_H。2、调试下面的程序、写出调试结果及程序的功能。DATA SEGMENT A DB 23H B DB 25HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,ACMP AL,BJZ NEXT1MOV DL,#JMP NEXT2NEXT1:MOV DL,
11、=NEXT2:MOV AH,4CH INT 21HCODE ENDSEND START程序运行后,DL=_23_H。该程序的功能是:_测试数据区中的两数据是否相同,相同时DL=,不同时DL=#_3、已知以BUF为首地址的10个数(字节型),求其和(设和小于127),结果存放在RES单元(字节型)。DATA SEGMENT BUF DB 1H,3H,12H,5H,6H,7H,8H,9H,5H,2H RES DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AXMOV AL,0MOV CX,0AHLEA
12、 BX,BUFLP: ADD AL,BX INC BXLOOP LPMOV RES,ALMOV AH,4CHINT 21HCODE ENDS END START程序运行后,RES单元的值为_40_H。4、在内存中有一数据块,起始地址为BLOCK,数据块中的数据有正有负,要求把其中的正负数据分开,分别放在BUF1、BUF2缓冲区中。请将下面的程序补充完整,并上机调试。DATA SEGMENT BLOCK DB 03H,45H,90H,87H,50H,99H,9EHCNT EQU $-BLOCKBUF1 DB CNT DUP(?)BUF2 DB CNT DUP(?)DATA ENDSCODE SE
13、GMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AXLEA BX,BLOCK lea si,buf1 LEA DI,BUF2MOV CX,CNTNEXT:MOV AL,BX test al,80h JZ ZH MOV DI,AL INC DI JMP A1 ZH:MOV SI,AL INC SIA1:INC BX loop next MOV AH,4CHINT 21HCODE ENDSEND START实验四 DOS中断和BIOS中断一、实验目的1、 掌握BIOS及DOS功能调用的一般方法。2、 掌握常用的DOS功能调用。二、实验环境1、
14、硬件环境:微机。2、软件环境:Emu8086 4.07。三、实验内容分析并完整程序,观察运行结果1、从键盘输入一个小写字母,转换成大写字母并在显示器上输出。CODE SEGMENTASSUME CS:CODESTART:MOV AH,01H ;输入一个字符 _int 21h_ SUB AL,20H ;小写字符转化为大写字符MOV DL,AL_mov ah,02h_ ;输出单个字符INT 21HMOV AH,4CHINT 21HCODE ENDSEND START2、已知以BUF开始的数据区存放若干个英文字母,将大写转换成小写,将小写转换成大写并输出。DATA SEGMENTBUF DB asd
15、fhIJKLMNCNT EQU $-BUFDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX_lea bx,buf_ ;用bx指向该数据区MOV CX,CNTNEXT:MOV AL,BXCMP AL,_61h_ ;判断是否为小写字母JL DASUB AL,20HMOV BX,ALJMP EXITDA:ADD AL,20H MOV BX,ALEXIT:INC BXLOOP NEXTMOV BYTE PTR BX,$ ;想一想,此处为什么要输入一个$MOV DX,OFFSET BUF ;输出处理后的字符串MO
16、V AH,09H INT 21HMOV AH,4CHINT 21HCODE ENDSEND START3、用BIOS中断实现软件延时运行Emu8086,打开例子程序“traffic_lights.asm”,分析并运行程序。如果要将红绿灯的状态改变时间间隔修改为2s,则该程序的21-24行应变为:mov cx, 1eh mov dx, 8480h mov ah, 86h int 15h 综合实验 简单接口8086控制LED一、实验目的1、掌握8086与简单外设之间的数据传送方式。2、掌握protues软件的设计仿真使用方法。3、掌握端口译码电路的分析设计方法。二、实验环境1、硬件环境:微机。2、
17、软件环境:Emu8086 4.07、protues7.5。三、实验内容本实验是设计一个最简单的开关控制LED灯的计算机控制系统。工作原理:首先用8086CPU来读取一个8位开关的状态,然后8086根据此信息控制LED灯的亮灭,如图所示。1、安装protues7.5软件打开老师给的软件,双击setup.exe开始安装,然后根据“安装/破解/汉化 说明.txt”中的1-3步进行操作。2、绘制8086控制LED的电路图单击“开始”-“程序”-“protues 7 professional”-“ISIS 7 professional”,开始准备绘制电路图。如左图所示,单击左侧工具栏,选择“元件模式”,
18、然后单击“P”按钮选择电路图中所需要的元器件;在右图中,在关键字文本框中输入元器件名,选择电路图中所需要的元器件。还需分别单击左侧工具栏上的“终端模式”和“总线模式”按钮,进行电路绘制。 图中用到的元件包括:8086、74LS373、74LS138、74LS27(或门)、NOT、74LS245、RES(双击后阻值修改为100欧姆)、RESPACK-8(排阻)、DISPW-8(开关组)、LED-YELLOW(黄色发光二极管)3、分析IO端口地址根据自己绘制的电路图,分析IO端口地址。由图中可以看出,IO1端口对应的地址信息A15-A0中,地址信息_A15、A14、A13、A12_应有具定的值,分
19、别是_1001_,而A0=_0_,其它的地址信息是任意的,但一般常取0,所以IO1的端口地址是_90000_H。4、编写控制程序io.asm(参考程序,可自己编写)code segment assume cs:codestart: mov dx,_8000h_ ;CPU读开关组的状态 _in al,dx_ mov dx,_9000h_ ;根据状态,CPU发出信息控制LED灯 _out dx,al_ jmp startcode ends end start利用Emu8086或Masm5软件,对该程序进行汇编连接,生成io.exe文件。5、仿真实验步骤(1)绘制好电路图,保存为IO.dsn文件。(
20、2)编制的汇编程序保存为IO.asm,生成的exe文件是IO.exe,并且要与IO.dsn在同一文件夹内。(3)在电路图中,双击8086,弹出下图,单击按钮选择程序“IO.exe”,并将内存大小修改为1MB(即Ox10000)。(4)单击左下角的运行按钮,进行仿真。拨动开关组中的开关,观察LED灯是否会随之变化。思考题:在不改变电路图的情况下,要实现LED灯循环的依次点亮,程序该如何编写?并进行仿真实验,观察结果。请在下面给出汇编程序。参考程序:CODE SEGMENT ASSUME CS:CODESTART: MOV DX,9000H MOV AL,11111110BNEXT: OUT DX,AL ROL AL,1 JMP NEXT CODE ENDS END START
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1