ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:50KB ,
资源ID:3665620      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3665620.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电科微机原理与接口试验自编教材.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电科微机原理与接口试验自编教材.docx

1、电科微机原理与接口试验自编教材微机原理与接口技术实验教学大纲课程名称:微机原理与接口技术实验 课程编号:实验学时:16 实验学分:1一、本实验课的性质、任务与目的微机原理与接口技术实验是电子信息科学与技术专业必修的专业基础课,是一门重要的实践环节课程。本实验安排学生上机实践及实验箱的实际动手操作。将使学生理解汇编语言的基本概念和主要功能,掌握常用的汇编语言程序设计方法,掌握常用的接口的工作原理和编程控制方法,学会利用软硬件方法使用各种常用的可编程接口芯片,为开发不同用途的微型计算机应用系统打下良好的基础。二、实验项目的设置与内容提要序号实验项目实验学时实验类型实验要求内容提要1调试程序debu

2、g的使用2验证必做熟悉debug常用命令的使用方法,利用debug运行简单的汇编程序。2汇编语言程序的编辑、汇编、链接、调试、运行2验证必做熟悉edit编辑程序的方法,利用edit编辑简单的汇编程序。3顺序机构程序设计2设计必做应用顺序结构程序设计方法,上机编程调试汇编语言程序。4分支机构程序设计2设计必做应用分支机构程序设计方法,上机编程调试汇编语言程序。5循环结构程序设计2设计必做应用循环结构程序设计方法,上机编程调试汇编语言程序。6系统功能调用2设计必做应用系统功能调用程序设计方法,上机编程调试汇编语言程序。7基于实验箱的硬件实验2设计必做1616点阵显示实验、音频驱动实验、控制交通灯实

3、验。8上机考试2设计必做按题目所要求上机编程调试汇编语言程序,程序及答案填在试卷中,运行后,内存中的结果让老师检查后方可离开。考试时间共90分钟。三、考核方式与评分办法:1每次实验必须有指导教师点名,不得无故缺席或迟到;2实验结束后,学生向指导教师上交实验报告;3平时成绩占50,上机考核占50。四、本实验课教材或实验指导参考书1 李东 微机原理与接口实验自编教材2 微机接口实验系统8086/8088实验指导书 启东达爱思计算机有限公司出品3 王智文、蔡启先等微机原理及汇编语言程序设计2005年10月微机原理与接口实验自编教材信息与计算科学系电科教研室 李东前言:汇编语言程序设计是电子信息科学与

4、技术专业的一门重要的计算机技术基础课程和必修的专业基础课,是操作系统、计算机接口技术、计算机系统结构、单片机原理、计算机控制技术等课程的先修课。在众多的程序设计语言中,汇编语言是面向机器的低级语言。由于汇编语言可以直接对硬件资源进行编程,因而汇编语言具有更高的执行效率。与高级与语言相比,它更适合于对执行速度和代码长度要求较高的场合。可见,汇编语言一方面可以帮助学生理解计算机工作原理,为后续课程的学习打下基础,同时也可以直接应用于实时控制及与硬件资源京密结合的其它领域。汇编语言程序设计是一门实践性很强的课程,程序设计如何,是否达到要求,必须通过上机运行和调试。在具体学习实践中,很多人普遍感到汇编

5、语言程序改错、上机调试使学生操作上的难点,应此,我们编写了本实验教材,具有通俗易懂的特点,希望对大家的学习有所帮助。微机原理与接口技术实验实验报告系: ;班级: ;姓名: ;学号: ;指导教师: 李东 ;实验时间: ;实验成绩: ;实验一 调 试 程 序DEBUG 的 使 用DEBUG.EXE是DOS提供的用于调试可执行程序的工具软件,是汇编语言程序设计中常用的调试工具。在DEBUG环境下,不但可以调试经汇编、连接后生成的可执行程序,也可以编写简单的程序。一、实验目的1.熟悉debug 常用命令的使用方法2.了解上机操作环境二、实验内容1. 按照提供的debug电子版补充教材进行学习训练2.

6、用汇编语言编写一个计算“3+5”的加法程序3. 利用debug运行简单的汇编程序。4. 熟悉debug 常用命令的使用方法三、实验实现的程序及上机操作步骤MOV AL, 33H ; 将3的ASCII码送入AL寄存器中MOV DL, 35H ; 将5的ASCII码送入DL寄存器中ADD DL, AL ; 做“3+5”,结果送DL寄存器SUB DL, 30H ; 将“3+5”的结果进行调整,得到8的ASCII码,送DL寄存器MOV AH, 2 ; INT 21H ; 输出DL寄存器中的字符INT 20H ; 中断当前执行的程序 该程序是将两个十进制数3和5的ASCII码送入寄存器AL和DL,当AS

7、CII码进行相加时必须通过条调整后才能得到其结果。如例中,33H+35H等于68H,68H-30H=38H,38H才是十进制8的ASCII码,再将结果在显示器上显示DL寄存器中的字符,该字符应该是将字符的ASCII码放在DL寄存器中。INT 20H 是中断正常结束程序。 运行步骤如下:1.进入DEBUG状态 点击“开始”“程序”“附件”“命令提示符”,进入DOS操作环境。然后运行DEBUG程序:(说明:本课程实验假设是在c盘上建立了masm子目录,且masm.exe、link.exe、debug.exe、cref.exe、lib.exe都在该目录中。) C:CD C:CD MASM C:MAS

8、MDEBUG屏幕显示: _ “_”为 已进入DEBUG状态,在该提示符下可键入DEBUG命令。(下划线部分表示用户键入的字符或命令,为回车符号)2.键入程序并汇编 用DEBUG的A命令送入程序:_ A 100 0A47:0100 MOV AL, 33 0A47:0102 MOV DL, 35 0A47:0104 ADD DL, AL 0A47:0106 SUB DL, 30 0A47:0109 MOV AH, 2 0A47:010B INT 21 0A47:010D INT 20 0A47:010F _ 当键入A命令时,自动产生程序所送内存单元的段地址和偏移地址。通过偏移地址可以看到每条指令占

9、内存单元多少字节。如“MOV AL, 33”占两个字节,当程序送完时,只键入回车键,就退出汇编状态(A状态)回到DEBUG状态“-”。其中送入的数据为十六进制数,DEBUG状态下程序中的数据均按十六进制处理,不需要键入H来表示数据为十六进制数。3.执行程序 用DEBUG的G命令执行刚刚汇编的程序:- G 8program terminated normally4.反汇编 可以用反汇编U命令将键入的程序调出,并且可以得到每条汇编指令的机器码。- U100 10D 0A47:0100 BO33 MOV AL, 33 0A47:0102 B235 MOV DL, 35 0A47:0104 00C2

10、ADD DL, AL 0A47:0106 80EA30 SUB DL, 30 0A47:0109 B402 MOV AH, 2 0A47:010B CD21 INT 21 0A47:010D CD20 INT 20 四、熟悉:E、D、R等其它debug常用命令例:利用DEBUG的E命令向内存中写入机器码,D命令察看内存中的数据,用U命令查看内存中机器码的含义,用T命令执行内存中的机器码。 如何向内存中写入机器码呢?我们知道,机器码也是数据,当然也可以用E命令将机器码写入内存。比如要从内存1000:0单元开始写入这样一段机器码:机器码 对应的汇编指令 b8 01 00 mov ax, 0001

11、b9 02 00 mov cx, 0002 01 c2 add ax, cx可以用下述的方法进行实验: C: DEBUG - E1000:0 B8 01 00 B9 02 00 01 C8 - 如何查看我们写入的或内存中原有的汇编指令呢?我们用D命令察看1000:01000:1F中的数据(从数据的角度看一下我们写入的内容);最后用U命令将1000:0开始的内存单元中的机器指令代码翻译成他们所对应的汇编指令。 - U1000:0 1F 1000:0000 B8 01 00 MOV AX, 0001 1000:0003 B9 02 00 MOV CX, 0002 1000:0006 01 C8 A

12、DD AX, CX 1000:0008 由此,我们可以再一次看到内存中的数据和代码没有任何区别,关键在于如何解释。 如何执行我们写入的机器指令呢?使用DEBUG的T命令可以执行一条或多条指令,简单的使用T命令,可以执行CS:IP指向的指令: 接前面实验: - R - RCS CS XXXX : 1000 - RIP IP XXXX : 0 - R - T - P 这个例子中,我们先用E命令向1000:0开始的内存单元中写入了8个字节的机器码,然后用R命令查看CPU中寄存器的状态,可以看到,CS=XXXX,IP=YYYY,指向内存XXXX:YYYY;若要用T命令控制CPU执行我们写到1000:0

13、的指令,必须先让CS:IP指向1000:0;接着用R命令修改CS、IP中的内容,使CS:IP指向1000:0完成上面的步骤后,我们就可以使用T命令来执行我们写入的指令了(此时CS:IP指向我们的指令所在的内存单元)。执行T命令后,CPU执行CS:IP指向的指令,则1000:0处的指令B8 01 00 (MOV AX, 0001)得到执行。指令执行后,DEBUG显示输出CPU中寄存器的状态。注意:指令执行后,AX中的内容改写为1,IP改写为IP+3(因为(MOV AX, 0001的指令长度为3个字节),CS:IP指向下一条指令。接着我们可以继续使用T命令执行下面的指令,注意每条指令执行后,CPU

14、相关寄存器内容的变化。五、实验运行结果及实验后的心得体会实验二 汇编语言程序的编辑、汇编、链接、调试、运行一、实验目的1. 了解上机操作环境;2. 了解上机操作流程;3.熟悉EDIT编辑程序的使用方法,利用EDIT编辑简单的汇编程序;4.熟悉汇编语言程序的编辑、汇编、链接、调试、运行二、本实验上机操作环境:这里列出了本实验的上机操作环境。包括:操作系统:Window 9x的MS-DOS方式,MSDOS6.22、MSDOS7.0,Window 2000及以上“命令提示符”的运行等。文本编辑器:记事本,EDIT.COM等汇编程序:MASM.EXE、ASM.EXE等连接程序:LINK.EXE调试程序

15、:DEBUG.EXE此外还有:索引程序:CREF.EXE库管理程序:LIB.EXE假定在 C盘上建立了MASM子目录,且上述程序都在该目录中。三、上机操作流程 整个上机过程包括:建立与编辑源程序;原程序汇编产生目标文件;连接目标程序产生可执行程序;调试运行可执行程序这么四个步骤。进入MS-DOS,建立与编辑源程序 点击“开始”“程序”“附件”“命令提示符”,进入DOS操作环境: C:CDMASM C:MASMDIRC:MASM XX-XX 的目录200X-XX-XX XX-XX 200X-XX-XX200X-XX-XX XX-XX 39,100 MASM.EXE200X-XX-XX XX-XX

16、 39,100 LINK.EXE200X-XX-XX XX-XX 39,100 CREF.EXE200X-XX-XX XX-XX 39,100 LIB.EXE200X-XX-XX XX-XX 39,100 DEBUG.EXEXX个文件 XXX,XXX字节X个目录 X,XXX,XXX,XXX可用字节现在我们利用EDIT编辑程序:C: MASMEDIT 进入EDIT编辑状态,在EDIT文本编辑器中输入源程序:DATA SEGMENT X DB 0E5H ;定义变量X、Y、W Y DB 34H W DW ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTA

17、RT: MOV AX, DATA ;装填DS端地址 MOV DS, AX XOR AH, AH ;AH清零,为高字节加作准备 MOV AL, X ;AX=X+Y ADD AL, Y ADC AH, 0 MOV W, AX ;送结果 MOV AH, 4CH ;返回DOS INT 21HCODE ENDS END START程序输入完毕,要给输入的程序起一个文件名,其扩展名必须为.ASM。按下ALT健,在file菜单中用方向健选择“save”,再出现的对话框中的“file name:-”中输入“test1.asm”并即点击ok或按回车。按下ALT健,在file菜单中用方向健选择“Exit”并退出E

18、DIT回到DOS状态。原程序汇编产生目标文件C: MASM MASM TEST1.ASM Microsost (R) Macro Assembler Version 5.00Copyright (C) Microsost Corp 1981-1985, 1987Source filename.ASM: TEST1 Object filenameTEST1.ASM:Source listingNUL.LST: 50722+410046 Byte symbol space free 0 Warning Errors 0 Severe Errors汇编成功,形成TEST1.OBJ文件。若不需要列表文

19、件和交叉索引文件可直接回车跳过。连接目标程序产生可执行程序C: MASM LINK TEST1 IBM Personal Computer Linker Version 2.00 (C) Copyright IBM Corp 1985、1986、2000Object Modules .OBJ: TEST1 Run File TEST1.EXE: List File NUL.MAP: Libraries .LIB: Warning: No Stsck Segment(表明用户程序没有设置堆栈,将由系统自动设置,此警告错误一般不会影响可执行程序的产生和运行。)下面我们进行程序的运行与结果检查:.调

20、试运行可执行程序C: MASM TEST1.EXE ;执行该程序C: MASM 由于程序执行的结果存放在内存单元中,因而屏幕看不到任何结果。因此,必须启动DEBUG调试程序,来了解运行的结果。C: MASM DEBUG 屏幕显示“-”号是DEBUG系统提示符。- N TEST1.EXE ;用N命令来指定要调试的文件名- L ;用L命令装入该文件到内存中- U ;用U命令反汇编该文件1407:0000 B80614 MOV AX,14061407:0000 B80614 MOV DS,AX- D 1406:0,F1406:0000 E5 34 00 00 00 00 00 00-00 00 00

21、 00 00 00 00 00 说明按照程序的DATA数据段的要求它排了变量X的数据E5H和Y的数据34H,接下来使用G命令执行程序:- G=1407:0 ;该命令表示要执行地址为1407:0开始的程序Program terminated normally- D 1406:0,F ;查看结果1406:0000 E5 34 19 01 00 00 00 00-00 00 00 00 00 00 00 00 (可见W的值为0119H,结果是正确的)- Q ;退出DEBUG下面介绍DEBUG另一种启动方法:C: MASM DEBUG TEST1.EXE ;将指定文件装入内存- U 13C8:0000

22、 B8C713 MOV AX, 13C713C8:0000 8ED8 MOV DS, AX- D 13C7:0000,F 13C7:0000 E5 34 00 00 00 00 00 00-00 00 00 00 00 00 00 00 下面用单步调试来运行调试程序:所谓单步调试,是指逐条执行程序指令,每执行完当前一条指令后,系统会暂停,此时用户可以用D命令来查看内存,或用R命令查看寄存器内容,从而了解程序是否按设计要求正常运行,再用DEBUG将.EXE程序装入并用U命令反汇编了解有关信息后,执行程序时不用G命令而用T命令。 下面以TEST1.EXE程序为例:- T=13C7:0 此时屏幕显示

23、各个寄存器内容及下一条要执行的指令,依次使用T命令就可以观察每一条指令执行后的寄存器,内存的具体情况:AX=13C3 BX=XX DX= XX 13C4:0003 8ED8 MOV DS, AXT T 13C4:0014 B44C MOV AH, 4C 说明遇到子程序、中断程序、循环程序时,没有必要跟踪下去。下面用P命令来避免(把它当作一条指令来执行)P 或者用G命令一直运行到程序结束(或断点处)G Program terminated normally四、实验后的心得体会实验三 顺序结构程序设计一、实验目的 掌握8086/8088汇编语言程序设计和调试方法。本实验应用顺序结构程序设计方法,上

24、机编程调试汇编语言程序。二、实验内容设A、B、C、均为无符号字节数据,编程求Y=(A+B)C的值。(A+B)C三、程序流程分析:由题意知,A、B、C均为无符号字节数据,其值在0255范围内,A+B的值有可能超过8位的字节范围,即在字范围之内。因此,产生的和与C相乘时,应选择16位相乘指令。按A、B、C、均为最大数(255)分析,乘积有可能超过16位,在双字的范围内。从题意可分析应按“顺序结构”设计程序。 四、实验步骤用连续或单步方式运行程序,检查Y变量地址中的结果是否正确。五、实验思考 六、实验参考程序方法1:DATA SEGMENTA DB 201B DB 174C DB 240Y DW ?

25、,?DATA ENDS;-CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX ;为数据段寄存器装入值 MOV AH,0 MOV AL,A ;取变量A的值 ADD AL,B ;求变量A与B的8位之和 ADC AH,0 ;产生的进位送入AH,16位的和在AX中 MOV BL,C MOV BH,0 ;变量C的值取入BX寄存器 MUL BX ;DX,AX和C MOV Y,AX ;送32位积的低字位 MOV Y+2,DX ;送32位积的高字位 MOV AH,4CH INT 21H ;返回DOS状态CODE ENDS END ST

26、ART方法2:DATA SEGMENTNUM DB 201,174,240Y DW ?,?DATA ENDS;-CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX ;为数据段寄存器装入值 MOV SI,OFFSET NUM ;设地址指针 MOV AH,0 MOV BH,AH ;AX和BX的高8位清零 MOV AL,SI ;数据A、B、C都是DB定义的字节数据 MOV BL,SI+1 ;因此它们的值只能取入8位寄存器 ADD AX,BX ;ALA+B,AH若有进位 MOV BL,SI+2 ;取数据C的值到BL MUL B

27、X ;DX,AX和C MOV Y,AX ;送32位积的低字位 MOV Y+2,DX ;送32位积的高字位 MOV AH,4CH INT 21H ;返回DOS状态CODE ENDS END START实验四分支机构程序设计一、实验目的 掌握8086/8088汇编语言程序设计和调试方法。本实验应用分支结构程序设计方法,上机编程调试汇编语言程序。二、实验内容设X为字节变量,其值在DS:0400H单元存放,Y的值存于0041H单元中,编程求下面的函数值,并画出程序流程图: 1 ( X0 ) Y = 0 ( X=0 ) -1 ( X0 )三、程序流程 分析:依题意知这是三分支程序,因此在程序中应判断两次

28、,根据变量X值的大小,决定函数 Y的值。程序流程图如下所示:四、实验步骤五、实验思考六、实验程序 编程:数据段程序中为字节变量X定义一个-128+127范围内的任一值,为函数Y保留一个字节单元,存放Y的值。参考程序如下:DATA SEGMENT ORG 0040HA DB -27B DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX ;为数据段寄存器装入值 MOV AL,A ;取字节变量X的值 AND AL,AL ;影响出SF和ZF标志位的状态 JS M1 JZ M2 MOV B,1 ;若结果为正,Y值取+1 JMP DONEM1: MOV B,-1 ;若结果为负,Y值取- JMP DONEM2: MOV B,0 ;若结果为0,Y值取0DONE: MOV AH,4CH INT 21H ;返回DOS状态CODE ENDS END START实验五 循环结构程序设计一、实验目的 掌握8086/8088汇编语言程序设计和调试方法。本实验应用循环结构程序设计方法,上机编程调试汇编语言程序。二、实验内容 已知内存DS:0010H0031H单元中存放的是带符号的字节数据,编程求

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1