129019552840008750微机原理实验指导书_第1页
129019552840008750微机原理实验指导书_第2页
129019552840008750微机原理实验指导书_第3页
129019552840008750微机原理实验指导书_第4页
129019552840008750微机原理实验指导书_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验须知一、预习要求1. 实验前认真阅读实验教程中有关内容,明确实验目的、内容和实验任务。2. 每次实验前做好充分的预习,对所需预备知识做到心中有数。3. 实验前应编好源程序,并对调试过程、实验结果进行预测。二、实验要求1. 实验课请勿迟到,缺席。2. 爱护设备,保持清洁,不随意更换设备。3. 认真完成实验任务,实验结果经教师检查。4. 做硬件实验时,严禁带电操作,即所有的接线、改线及拆线操作均应在不带电的状态下进行,并注意防止导线堵塞插孔。5. 发生事故,应立即切断电源,并马上向教师报告,检查原因,吸取教训。6. 实验完毕,请整理实验设备,正常关机,再离开实验室。三、报告要求每次实验后,应递

2、交一份实验报告,报告中应包含下列内容:1. 实验名称、实验人姓名、学号、班级,所用设备号。2. 实验目的、任务。3. 硬件实验应画出各任务的完整电路图。4. 画出各任务程序流程图。5. 写出实验调试情况,包括上机时遇到的问题及解决办法、实验结果分析等, 并附上调试好的程序清单(应加适量注释)。6. 总结实验中的心得体会,提出对实验内容、方案等的建议、意见或设想等。软件部分实验实验一 DEBUG的使用【实验目的】1学习使用DEBUG程序的各种命令。2掌握用DEBUG调试自编程序的方法,为以后实验打下基础。【实验性质】验证性实验(学时数:2H)。【实验内容】1进入DEBUG后,首先用命令R查看当前

3、DS和IP寄存器内容,记录此值。2练习R,D,A,U,T,P,G命令的使用。3用A命令汇编下列程序段,完成将DS:2000开始的5个字节内存内容相加,并把相加的结果存放在DS:2005内存单元中,用DEBUG调试运行该程序,查看运行结果,观察程序段能否完成指定功能,若不能,说明原因。 MOV CX,5MOV AL,0MOV BX,2000NEXT:ADD AL,BXINC BX LOOP NEXTMOV BX,ALINT 3步骤:1)用A命令将程序键入到100H开始的内存中,在键入时记下标号NEXT的实际地址,在键入LOOP指令时NEXT用实际地址值代替。2)用U命令检查键入的程序及对应的机器

4、码。3)用E2000 01 02 03 04 05将2000H开始的前5个内存单元的内容修改为01、02、03、04、05,用D命令查看修改结果,并记录结果。4)用T命令逐条运行上述小程序指令,检查并记录有关寄存器、存储单元内容及ZF情况。5)用F2000 L05 02 03 04 05 06 将2000H开始的5个内存单元的内容修改为02、03、04、05、06,用D命令查看修改结果,并记录修改结果。6)用G=100 全速运行上述小程序,用D2000 2005查看运行结果并记录运行结果。4利用T,P,G命令,执行下列程序段,注意它们的不同之处。(1) MOV DI,300MOV SI,400

5、MOV CX,3CLDREP MOVSBINT 3(2) 先在CS:200处汇编一条RET指令,再在CS:100处汇编。MOV BX,200CALL BXINT 3 然后从MOV BX,200处开始执行。5用命令A汇编下列指令,并判断指令正误并说明原因。(1) ROR AX,8(2) LEA DI,AX(3) MOV DS,2010(4) PUSH AL(5) OUT 900,AL(6) MOV BX,0【预习要求】1仔细阅读附录中“汇编语言上机操作过程及程序调试技术”部分的内容。2根据实验要求,对各项结果进行预测。【思考题】1指令MOV BX,AX中,操作数BX的寻址方式是什么?在DEBUG

6、下执行完该指令后,如何查看执行结果?2可否随意在DEBUG提示符“-”后不带参数发出命令G?什么情况下使用命令G时,可不用“=”给出执行首地址?【报告要求】1分析任务5中各条指令错误原因。2说明命令T和P的区别。3写出任务3的编辑调试过程,并附上调试记录。4回答思考题。【实验提示】1DEBUG的进入如果是首次进入DEBUG编程,则只要在DOS提示符下键入DEBUG ,即可进入DEBUG环境,显示提示符“-”。如果要对某个程序使用DEBUG进行调试,只要在DOS提示符下键入DEBUG 文件名,即可进入DEBUG环境,显示提示符“-”。如:Cdebug exam.exe2程序的汇编与反汇编源程序可

7、以在DEBUG下,用汇编命令A输入到内存中,只需在DEBUG提示符“-”下,键入汇编命令A ,并在显示“段寄存器地址:偏移地址”后面键入你自己编写的程序,每键入一条,按一次回车键。-A 127B:0100MOV CX,5 127B:0103MOV AL,0 127B:0105MOV BX,2000 如果进入DEBUG时是使用“DEBUG 文件名”进入的,那么在进入DEBUG状态后,可用反汇编命令U,将调入的程序显示出来:-U 127B:0100B90500MOV CX,5127B:0103B000MOV AL,0127B:0105BB0020MOV BX,20003在DEBUG状态下,对所编写

8、文件存盘的步骤给程序命名-N 文件名.COM 将文件长度放入BX、CX中(高位放入BX,低位放入CX中)-R BX (注意!由于文件长度一般较小,所以切记BX中付0值)-R CX (文件最末偏移地址减去文件开始的偏移地址即文件长度)用写盘命令W把正在调试的内存中程序写入磁盘中-W 地址(文件开始地址)退出DEBUG状态用Q命令:-Q 4在DEBUG状态下,建议使用DOS分配给用户的内存可用区在DEBUG状态下,用户可对所有寄存器、RAM内存随意查看和修改,但由于对DOS操作系统在内存中存放情况不了解,可能会将存放有操作系统程序的内存内容破坏,从而可能引起系统的异常,出现死机现象,故建议使用DO

9、S分配给用户的内存可用区,其低端地址是刚进入DEBUG时,用命令R查看到的DS:IP。5用连续执行命令G应注意问题用连续执行命令G执行程序时,注意给出执行程序的首地址,并注意执行的程序中有返回DEBUG功能的程序段,如指令INT 20H或断点设置INT 3,否则发出命令后,很容易出现死机,原因是无返回程序段使系统返回命令接受状态,CPU将不断到内存中取指令、执行指令,使用户失去对系统的控制。为避免这种情况,可在用户程序段结尾加上一条INT 20H指令,或INT 3指令。6关于任务5DS:2000单元开始的5个字节内容,可用填充命令F给其赋值。-F 2000 L5 01 02 03 04 05(

10、在执行程序前用F命令给单元赋值)之后,运行任务5程序段,检查运行结果是否正确。实验二 两个多位十进制数相加实验【实验目的】1 熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。2 掌握数据传送和算术运算指令的用法。3 熟悉和掌握用DEBUG调试程序的方法。【实验性质】验证性实验(学时数:2H)。【实验内容】1将两个多位十制数相加,要求加数和被加数均以ASCII码形式各自顺序存放在以DATAl和DATA2为首的5个内存单元中(低位在前),结果送DATA3处。2将上题改为高字节在前低字节在后的形式存放数据,程序如何改变?3上述程序只显示了相加结果,没有显示加数和被加数,如果按47193

11、+28056=75249格式显示,程序如何修改?4如果考虑5位十进制数向更高位有进位情况,程序如何修改?实验说明:汇编语言没有十进制加法指令,ADD/ADC加法指令的运算对象是二进制数,如果要进行BCD码数的加法,需要对结果进行修正。组合BCD码的加法调整指令为DAA,它针对AL寄存器中的组合BCD码数之和进行修正。对于未组合BCD码的加法调整指令为AAA(加法的ASCII码调整指令),它将存于AL寄存器中的一位ASCII码数加法运算的结果调整为一位拆开型十进制数,仍保留在AL中,如果向高位有进位(AF=1),则进到AH中。对于多字节的ASCII码相加,只能从最低位开始逐个字节地进行加法操作,

12、并随即进行调整。内容1参考程序清单(WJSY2.ASM):DATASEGMENTDATA1DB 33H,39H,31H,37H,34HDATA2DB 36H,35H,30H,38H,32HDATA3 DB 5 DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AXMOV CX,5;计数MOV SI,0;做变址用,因从DATA1的第一个数取数,故SI=0CLCNEXT:MOV AL,DATA1SI;取被加数给ALADC AL,DATA2SI;取加数和AL相加AAA;未组合十进制数加法调整指令MOV DAT

13、A3SI,AL;结果送至DATA3处INC SI;修改SI指向下一位数 LOOP NEXTMOV SI,5;因显示是从高位到低位,故SI=5L: ADD DATA3SI-1,30H;还原成ASCII码 MOV DL,DATA3SI-1 MOV AH,02;送显示 INT 21H DEC SI JNZ L MOV AH,4CH;返回DOS INT 21HCODEENDS END START运行结果:75249【实验要求】1 实验内容1、内容2为基础题,必须做,完成后可得7分。2 实验内容3为提高题,完成后可再加2分。3 实验内容4为提高题,完成后可再加1分。【预习要求】 1仔细阅读课本及相应教材

14、。 2参照程序框图编制源程序,准备好多组运算数据,以供校验。【思考题】1一个段的大小为多少?一定是64KB吗?如何在DEBUG下查看程序在内存的存放情况?2加数与被加数都是ASCII码形式,在作相加运算时,是否要先转换为十六进制数?【报告要求】1报告要写实验目的、实验内容。2列出运行正确的源程序清单,加上适当注释,写出执行结果及结果分析。3回答思考题。4. 写出实验总结。【实验提示】打开MASM文件夹,有四个文件EDIT.COM,MASM.EXE,LINK.EXE,DEBUG.COM我们要用到。1进入EDIT编辑环境建立和修改汇编源程序文件(文件名要以.ASM结尾)2用MASM命令汇编源文件以

15、产生相应的目标文件(OBJ文件)3用LINK命令连接目标文件以产生可执行文件(EXE文件)4用DEBUG调试、运行可执行程序。参考程序框图:注:该框图考虑了五位十进制数向更高位有进位的情况。显示被加数和加数清除进位标志CX计数值5执行ADC带进位加法运算AAA调整AH0结果送缓冲数据区调整偏移量CX-1=0?AH将FR低8位AHAH01BXAH 十六进制结果转化为ASCII码表示的数字串 显示结果NY结束实验三 字符串匹配程序【实验目的】1掌握提示信息的使用方法及键盘输入字符串的用法。2进一步掌握串操作指令的用法。【实验性质】验证性实验(学时数:3H)。【实验内容】1编写程序,实现两个字符串比

16、较,当两字符串完全相同时,才显示“MATCH”,如果有一个字符不同,则显示“NO MATCH”。字符串由键盘输入。2编写程序,实现密码的设置。要求:首先在屏幕上提示:“Please input the password:”,然后从键盘输入密码,接着提示:“Please input the password again:”,从键盘再输入一遍密码,如果两次输入的密码相同,则提示:“OK! Succed in setting up password !”,如果两次输入的密码不同,则提示:“Sorry, Please input password again:”,让用户重新设置密码,直至设置成功。3利

17、用密码登录系统,密码可由程序员自己设定,在数据段定义。首先在屏幕上提示:“Please input the password:” ,从键盘输入密码,如果密码正确,显示:“Welcome to using the system!”,如果密码不正确,显示“Password error,Please input password again:”,等待用户输入密码,密码最多输入3次,超过3次,显示“Sorry! You cant enter the system!”,程序结束。实验内容1 参考程序清单:CRLFMACRO;宏定义MOV AH,02HMOV DL,0DH;回车INT 21HMOV AH,

18、02HMOV DL,0AH;换行INT 21HENDMDATASEGMENTMESS1DBMATCH,0DH,0AH,$MESS2DBNO MATCH,0DH,0AH,$MESS3DB INPUT STRING1:,0DH,0AH,$MESS4DBINPUT STRING2:,0DH,0AH,$STR1DB20,?,21 DUP(0);字符串1数据缓冲区STR2DB20,?,21 DUP(0);字符串2数据缓冲区DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOV AX,DATAMOV DS,AXMOV ES,AXMOV AH,09

19、HMOV DX,OFFSET MESS3 ;显示提示信息INT 21HMOV AH,0AH;接收键入的字符串1MOV DX,OFFSET STR1INT 21HCRLF;宏调用,实现回车换行MOV AH,09HMOV DX,OFFSET MESS4 ;显示提示信息INT 21HMOV AH,0AH;接收键入的字符串2MOV DX,OFFSET STR2INT 21HCRLFmov al,str1+1cmp al,str2+1;比较两字符串的长度 jnz NEQQ;若长度不等则转NEQQCLD;清方向标志MOV CL,SI+1 ;字串1的实际长度MOV CH,0LEA SI,STR1+2 ;字串

20、1字符所在区域偏移地址LEA DI,STR2+2 ;字串2字符所在区域偏移地址 REPE CMPSB ;字串1和字串2的所有字符做比较JZ EQQ;相等转EQQNEQQ:MOV DX,OFFSET MESS2MOV AH,09 ;不相等显示“NO MATCH”INT 21HJMP STOPEQQ:MOV DX,OFFSET MESS1MOV AH,09;显示“MATCH”INT 21HSTOP:MOV AH,4CH;返回DOSINT 21HCODEENDSEND START【实验要求】1 实验内容1、内容2为基础题,必须做,完成后可得8分。2 实验内容3为提高题,完成后可再加2分。【预习要求】

21、1 仔细阅读课本中有关DOS功能调用INT 21H中0AH号功能调用及串操作类指令部分的内容。【报告要求】1报告要写实验目的、实验内容。2列出运行正确的源程序清单,加上适当注释,写出执行结果及结果分析。3回答思考题。4. 写出实验总结。【思考题】调用INT 21H中的0AH号功能时,用0AH输入的字符串,不加处理,能否直接用09H号功能输出?【实验提示】1在串比较操作时,一定要注意以下三点:源串一定放在数据段,目的串一定放在附加段;源串偏移地址的首地址一定放在SI寄存器中,目的串偏移地址首地址一定放在DI寄存器中;串长度一定放在CX中。清方向标志CLD。2INT 21H中0AH号功能调用关于输

22、入数据的缓冲区开辟问题输入缓冲区格式:DATASEGMNETBUFF1DB 20, ?, 21 DUP(0)DATAENDS预定最大输入字符数BUFF131H实际输入字符数32H33H从键盘输入字符的ASCII码34H 3实验环境可打开CMASM2文件夹,点击CMASM文件,进入集成汇编环境来建立、汇编、连接、调试程序。N实验四 从键盘输入数据并显示实验【实验目的】掌握接收键盘数据的方法,并了解数制转换的原理。【实验性质】验证性实验(学时数:2H)。【实验内容】编写程序,将键盘收到的四位十六进制转换为等值的二进制数,再显示在终端上。【预习要求】1仔细阅读实验指导书及相应教材。2参照给定程序框图

23、编制源程序。【报告要求】1报告要写实验目的、实验内容。2列出运行正确的源程序清单,加上适当注释,写出执行结果及结果分析。3写出实验总结。【实验提示】代码转换是计算机和外设打交道的重要技术。外部设备通常用ASCII码(如键盘输入的程序)或BCD码输入计算机,而计算机都将其转换为二进制数,运算完了之后计算机又必须将其转换为ASCII码或BCD码送到输出设备。显示请输入“十六进制数”调用GETNUM,接收键入数值,保存在BX中计数值16送CXBX中内容循环左移1位BL送DL,屏蔽DL高7位DL加30H,变成二进制数位对应字符的ASCII码显示CX-1=0?返回DOSYN主程序参考框图:子程序GETN

24、UM框图:保存寄存器 DX清0 读取键入字符的ASCII码送AL 将本次键入的数字加进DX中是回车或空格键?AL值小于30H吗?是数字0-9?是字母A-F?是字母a-f?显示输入出错信息回车换行恢复寄存器返回YNYYYYNNNN第二部分 硬件部分实验实验十一 定时器8253与中断控制器8259A实验【实验目的】1掌握计数器/定时器8253的工作原理和编程方法。2掌握8259中断控制器的工作原理。3掌握中断处理程序的编写。【实验性质】验证性实验(学时数:2H)。【实验内容】1该实验用PC机内部的中断控制器8259A,中断源用TPC-H实验箱上的8253来产生,电路如图1所示,将8253计数器0,

25、计数器1分别设置为方式3和方式2,计数初值设为2000,使8253每隔4秒产生一次低电平的中断请求。 CLK0 GATE0OUT0 CLK1 GATE1OUT1CSGND WR RD接1MHZ输出端接IRQ7280H287HIOWIOR8253图1 8253与8259 实验电路图2硬件电路如附图1所示。3编写程序,要求每次主机响应外中断IRQ7时,显示THIS IS A 8259A INTERRUPT !,在键盘上敲任意一个键,程序退出。4修改电路和程序,直接用手动产生单个脉冲作为中断请求信号,要求每按一次开关产生一次中断,在屏幕上显示一次This is a IRQ7 interrupt!,中

26、断10次后程序退出。【实验步骤】1断开电源,按虚线位置连接好接线,经检查无误后合上电源。2输入准备好的源程序,并进行汇编连接调试。3运行程序观察结果。【预习要求】1复习8253和8259A工作原理,编程方法和使用方法。2根据给定的参考程序框图,在实验前编写出源程序。【思考题】1在8253计数器/定时器中,时钟信号CLK、门脉冲信号GATE分别起什么作用?2初始化时设置为非自动结束方式,那么在中断服务程序将结束时必须设置什么操作命令?如果不设置这种命令会发生什么现象?3 8259A的中断屏蔽寄存器IMR和8086/8088的中断允许标志IF有什么差别?在中断响应过程中,它们怎样配合起来工作?4在

27、那些情况下需用CLI指令关中断?在那些情况下需用STI指令开中断?【报告要求】1画出程序框图。2整理好运行正确的源程序,并加上注释。3总结8259的编程方法。重点总结中断服务程序的实际入口地址是怎样得到的。4总结实验调试过程中遇到的问题。5回答思考题。【编程提示】1在TPC-H实验系统的接口卡上有一个跳线开关(JP),可以选择IRQ2、IRQ3、IRQ4、IRQ7引到试验箱上的IRQ插孔,出厂设置的是IRQ7。2中断控制器8259的地址为20H、21H,IRQ7对应的中断类型号为0FH,编程时要根据中断类型号设置中断向量,8259中断屏蔽寄存器IMR对应位要清零(允许中断),中断服务程序结束返

28、回前要使用中断结束命令:MOV AL,20HOUT 20H,AL3程序退出返回操作系统前应将8259中断屏蔽寄存器IMR对应位置1(以关闭中断)。CLI关中断开始设置IRQ7的中断矢量读8259中断屏蔽寄存器允许IRQ7中断STI开中断关闭IRQ7中断有键按下么?STI开中断结束YN(a) 主程序参考框图返回DOS程序参考框图:开始保存寄存器显示中断响应提示信息发中断结束命令恢复寄存器开中断中断返回(b)中断服务程序框图实验十二 8255和LED数码管显示实验【实验目的】1掌握并行接口8255A的工作原理及使用方法。2了解七段数码管显示数字的原理。3掌握多位数码显示的接口技术。【实验性质】验证

29、性实验(学时数:2H)。【实验内容】1静态显示:按图2连接好电路,将8255A的A口PA0PA6分别与七段数码管的段码驱动输入端ag相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。编程从键盘输入一位十进制数字(09),在七段数码管上显示出来。2动态显示(选做):按图3连接好电路,七段数码管段码连接不变,位码驱动输入端S1S0接8255C口的PC1、PC0。编程在两个数码管上显示56。图2 图3【实验步骤】1 断开电源,按虚线位置连接好接线,经检查无误后合上电源。2 输入准备好的源程序,并进行汇编连接调试。3 运行程序观察结果。【预习要求】1 复习8255A工作原理、编程方法和

30、使用方法。2 参考给定的程序框图,在实验前编写出源程序。【思考题】18255A的三个端口在使用时有什么差别?28255A的方式0一般使用在什么场合?在方式0时,如果使用应答信号进行联络,应该怎么办?3 当8255A工作在中断方式2时,CPU是如何区分输入或输出的?【报告要求】1画出程序框图。2整理运行正确的源程序,并加上注释。3总结实验调试过程中遇到的问题及解决的办法。4回答思考题。【编程提示】1实验台上的七段数码管为共阴极,码段采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。2七段数码管的字形代码如下表:程序参考框图:开始将8255设为A口输出从键盘接收

31、字符是数字么?将所得字符的ASCII码减30H查表求出对应的段码将段码自8255A口输出返回DOSa) 静态显示程序开始将8255设为A口输出送5的段码至A口送位码02H 至C口延时送6的段码至A口送位码01H 至C口延时有键按下么?返回DOSb) 动态显示程序YNNY实验十三 串行通信实验【实验目的】1了解串行通信的一般原理和RS-232C串行通信接口标准。2熟悉BIOS系统功能调用INT 14H的使用。【实验性质】验证性实验(学时数:2H)。【实验内容】利用串口1进行双机通信,硬件连接如图4所示。RI 9DSR 6RTS 7CTS 81 DCD2 RXD3 TXD4 DTR5 GNDDCD 1RXD 2TXD 3DTR 4GND 59 RI6 DSR7 RTS8 CTS甲机串行口乙机串行口图4 串行通信电路图1要求从甲机键盘输入的字符在乙机屏幕上显示,乙机键盘输入的字符在甲机屏幕上显示,按q键双方退出,返回操作系统。利用BIOS串行通信中断进行编程,采用查询方式,波特率2400,偶校验,1位停止位,7位数据位。2实验说明本实验为双机通信实验,实验的硬件连

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论