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

下载本文档

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

文档简介

1、浙江师范大学数理与信息工程学院 实验指导书(试行版)浙江师范大学计算机系2014-11-16实验一 Debug命令的使用一、实验目的1理解并掌握Debug各项命令的使用方法。2掌握汇编语言的工作原理。二、实验内容使用汇编语言,将内存单元(如偏移地址50)中的字符串“ABCDE”,移动到内存的另外一个偏移地址(如100)中。写出各个步骤执行后的具体内容。三、实验步骤1、使用debug命令,进入debug环境;2、使用R命令,修改DS和ES分别为2000和3000;3、使用D命令查看内存中源数据区和目标数据区的内容;4、使用E命令初始化源数据区,如:E ds:50 ABCDE f3 8D 125、

2、使用D命令检查源数据区和目的数据区;6、使用A命令输入程序:7、使用T命令单步跟踪执行程序。8、使用D命令,检查执行后源数据区和目标数据区内容。四、实验程序MOV SI, 0050H ; (DS)=2000H MOV DI, 0100H ; (ES)=3000H MOV CX, 5 CLD REP MOVSB实验二 清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。二、实验内容把2000H-20FFH的内容清零。三、程序框图开 始缓冲区首地址2000HBX字节数80HCXAX清零AXBXBX+2BXCX-1CXCX=0?结 束四、实验步骤   

3、0;用连续或单步方式运行程序,检查2000-20FFH中执行程序前后的内容变化。五、思考假使把2000H-20FFH中的内容改成FFH,如何修改程序。六、实验程序 CODE SEGMENT ASSUME CS:CODE, DS:CODE, ES:CODE ORG 800H S1: MOV BX, 2000H MOV AX, 0000H MOV CX, 0080H L1: MOV BX, AX INC BX INC BX LOOP L1 JMP $CODE ENDS END S1实验三 拆字程序一、实验目的 掌握汇编语言设计和调试方法。二、实验内容把2000H的内容拆开,高位送2001H低位,低

4、位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。三、程序框图四、实验步骤用连续或单步方式运行程序,检查20002002H中内容变化情况。五、思考如何用断点方式调试本程序。六、实验程序 CODE SEGMENT ASSUME CS:CODE, DS:CODE, ES:CODE ORG 1020H S2: MOV BX, 2000H MOV AL, BX MOV AH, AL MOV CL, 4 SHR AH, CL INC BX MOV BX, AH AND AL, 0FH INC BX MOV BX, AL JMP $ CODE ENDS END S2

5、实验四 拼字程序一、实验目的进步掌握汇编语言设计和调试方法二、实验内容把2000H、2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成个字节。三、程序框图四、实验步骤单步或用断点方式运行程序,检查2002H内容变化情况。五、实验程序 CODE SEGMENT ASSUME CS: CODE, DS:CODE, ES:CODE ORG 1040HS3: MOV BX, 2000HMOV AX, BXAND AL, 0FHMOV CL, 4AND AH,0FHOR AL, AHADD BX, 2MOV BX, ALJMP $ CODE ENDS END S3实验五

6、 8255控制交通灯一、实验目的进一步了解8255芯片的结构及编程方法,学习模拟交通控制的实现方法。二、实验内容用8255作输出口,控制十二个发光二极管燃灭,模拟交通灯管理。三、程序框图四、实验电路   五、实验步骤 8255PA0-PA7 PB0-PB3接发光二极管L12-L5、L4-L1。 执行程序,初始状态为四个路口的红灯全亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到

7、东西路口方向,之后重复以上过程。六、实验程序 PA EQU 0FFD8H PB EQU 0FFD9H PC EQU 0FFDAH PCTL EQU 0FFDBH CODE SEGMENT ASSUME CS:CODE, DS:CODE, ES:CODE ORG 32F0H H3: MOV AL, 88H MOV DX, PCTL OUT DX, ALMOV DX, PA MOV AL, 0B6HOUT DX, ALINC DXMOV AL, 0DHOUT DX, ALCALL DELAY1P30: MOV AL, 75H MOV DX, PA OUT DX, AL INC DX MOV AL,

8、 0DH OUT DX, AL CALL DELAY1 CALL DELAY1 MOV CX, 08HP31: MOV DX, PA MOV AL, 0F3H OUT DX, AL INC DX MOV AL, 0CH OUT DX, AL CALL DELAY2 MOV DX, PA MOV AL, 0F7H OUT DX, AL INC DX MOV AL, 0DH OUT DX, AL CALL DELAY2 LOOP P31 MOV DX, PA MOV AL, 0AEH OUT DX, ALINC DXMOV AL, 08HOUT DX, ALCALL DELAY1CALL DELA

9、Y1MOV CX, 08HP32: MOV DX, PA MOV AL, 9EH OUT DX, AL INC DX MOV AL, 07H OUT DX, AL CALL DELAY2 MOV DX, PA MOV AL, 0BEH OUT DX, AL INC DX MOV AL, 0FH OUT DX, AL CALL DELAY2 LOOP P32 JMP P30DELAY1: PUSH AX PUSH CX MOV CX, 0030HDELY2: CALL DELAY2 LOOP DELY2 POP CX POP AX RETDELAY2: PUSH CX MOV CX, 8000H

10、 LOOP S POP CX RETCODE ENDS END H3实验六 简单I/O口扩展一、实验目的(1)学习单片机系统中扩展简单I/O口的方法。(2)学习数据输入输出程序的编制方法。二、实验内容利用74LS244作为输入口,读取开关状态,并将此状态,通过74LS273再驱动发光二极管显示出来。三、程序框图 四、实验电路五、实验步骤编译、装载,连续运行程序,拨动K1-K8,观察L1-L8是否对应点亮。六、思考可否用273输入,244作输出。 七、实验程序PIO1 EQU 0FFE0HPIO2 EQU 0FFE4HCODE SEGMENT ASSUME CS: CODE, DS:CODE,

11、ES:CODE ORG 3380H ;273,244P4: MOV DX, PIO1 IN AL, DX MOV DX, PIO2 OUT DX, AL JMP P4CODE ENDS END P4实验七 A/D转换一、实验目的了解模/数转换基本原理,掌握ADC0809的使用方法。二、实验内容 利用实验系统上的0809作为A/D转换器,实验系统的电位器提供模拟量输入,编制程序,将模拟量转换成数字,通过数友管显示出来。开 始启动手0809进行本次A/D调用显示等待A/D转换结束读取A/D转换结果将结果送显示缓冲区三、程序框图   四、实验电路五、实验步骤编译、装载,连续运行程

12、序,LED显示器右边二位显示当前采集的电压值转换后的数字量,调节W1,LED的内容光焕发将随着电压变化而相应变化,以十六进制方式显示A/D转换值。六、实验程序 ADPORT EQU 0FFE0H ZXK EQU 0FFDCH ZWK EQU 0FFDDH CODE SEGMENT ASSUME CS:CODE, DS:CODE, ES:CODE ORG 3390H H5: JMP START LED DB 0COH, OF9H,0A4H, 0B0H, 99H, 92H,82H,0F8H, 80H,90H DB 88H, 83H, 0C6H, 0A1H,86H,8EH,0FFH, 0CH,0DE

13、H, 0F3H BUF DB ?,?,?,?,?,? START: MOV BUF, 00H ;DISPLAY 0808 00 MOV BUF+1,08H MOV BUF+2,00H MOV BUF+3,09H ;DISPLAY 0809 00 MOV BUF+4,00H MOV BUF+5,00HP5: MOV AL, 00H ;IN0 MOV DX, ADPORT OUT DX, AL CALL DIS MOV DX, ADPORT IN AL, DX MOV DX, 0FFE4H ;NEW ADD-> 138 Y1 NOT AL ;NEW ADD OUT DX,AL ;NEW AD

14、D->驱动发光二极管 NOT AL ;NEW ADD CALL ADS JMP P5 ADS: MOV AH, AL AND AL, 0FH MOV BUF+5, AL AND AH, 0F0H MOV CL, 4 SHR AH, CL MOV BUF+4, AH RET;- DIS: MOV CL, 20H MOV BX, OFFSET BUF DIS1: MOV AL,BX PUSH BX MOV BX, OFFSET LED XLAT POP BX MOV DX, ZXK OUT DX, AL MOV AL, CL MOV DX, ZWK OUT DX, AL PUSH CX MO

15、V CX, 0100H DELAY: LOOP $ POP CX CMP CL, 01H JZ EXIT INC BX SHR CL, 1 JMP DIS1 EXIT: MOV AL, 00H MOV DX, ZWK OUT DX, AL RET:- CODE ENDS END H5实验八 8259中断控制器实验一、实验目的掌握8259中断控制器的接口方法与程序设计二、实验内容编制程序,利用8259芯片的IR7作为中断源,产生单一中断,系统显示“7”。三、程序流程 N中断返回关中断刷新缓冲区写“7”次断加1显示“p”开 始判中断次数满7次后YIR7中断服务程序关中断初始化显示缓冲区、8259开

16、中断调用显示子程序开 始四、实验电路五、编程提示8259中断控制器是专为控制优先中断设计的芯片。它将中断源优先级排队,辨别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需8259进行编程,就可以管理8级中断,并选择优先优行模式和中断请求方式,即中断结构可以由用户编程来设定。同时在不需要的增加其它电路的情况下,通过多片8259的级联,能够成多达64级的矢量中断系统。中断序号01234567 变量地址2023h2427h282Bh2C2Fh3033h3437h383Bh3C3Fh本实验中使用7号中断源IR7,中断方式为边沿触发方式,按动AN按钮产生一次中断,编写程序,使系统每次响

17、应外部中断IR7时,显示1个字符“7”,显示满以后清空显示“P.”继续等待中断。六、实验连线Dais系列实验箱连线 Dais-958PT+系列实验箱连线实验 七、实验步骤编译、装载,连续运行程序,按AN按钮,LED数码管从最高位开始依次显示“7”,显示满后,最高位显示“P.”继续等待中断。 八、试验程序ZXK EQU 0FFDCHZWK EQU 0FFDDHPORT0 EQU 0FFE0HPORT1 EQU 0FFE1HCODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3400HH8:JMP P8259LED DB 0C0H,0F9H,0A4H,0

18、B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0E3HBUF DB ?,?,?,?,?,?P8259: CLI CALL WP MOV AX,OFFSET INT8259 MOV BX,003CH MOV BX,AX MOV BX,003EH MOV AX,0000H MOV BX,AX MOV FOR8259 MOV si,0000h STICON8: CALL DIS JMP CON8;-INT 8259:cli MOV BX,OFFSET BUF MOV BUYTE PTR BX+SI,07

19、H INC SI CMP SI, 0007H JZ X59XX59: MOV AL, 20H MOV DX, Port0 OUT DX, AL MOV CX, 0050HXXX59: PUSH CX Ca LL DIS POP CX LOOP XXX59 POP CX MOV CX, 3438h Push CX STI TRETX59: MOV ST, 000H CALL WP JMP XX59;= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =FOR8259: MOV AL, 13H MOV DX

20、, Port0 OUT DX, AL MOV AL 08H OUT DX, Portl MOV AL, 09H OUT DX, AL MOV AL, 7FH ;IRQ7 OUT DX, AL RET;-WP: MOV BUF, 11H ;初始化显示“9” MOV BUF+1, 10H MOV BUF+2, 10H MOV BUF+3, 10H MOV BUF+4 10H MOV BUF+5 10H RET;-DIS: MOV CL, 20H MOV BX, OFFSET BUFDIS: MOV AL, BX PUSH BX MOV BX, OFFSET LED XLAT POP BX MOV

21、DX, ZXK OUT DX, AL MOV AL, CL MOV DX, ZWK OUT DX, AL PUSH CX MOV CX, 0100HDELAY: LOOP $ POP CX CMP CL, 01H JZ EXIT INC BX SHR CL, 1 JMP DIS1EXIT : MOV AL, 00H MOV DX, ZWK OUT DX, AL RET;-CODE ENDS END H8附录:Debug主要命令DEBUG是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节。它可以用于逐指令执行某个程序以验证程序运行的正确性,

22、也可以追踪执行过程、比较一个指令执行前后的值以及比较与移动内存中数据的范围,读写文件与磁盘扇区。DEBUG的命令及功能如下:l 显示内存内容格式:D 地址 或D 起始地址 目的地址 功能: 以内存映象方式显示内存中的信息。说明: 转储用左右两部分显示内存映象内容,左边以十六进制,右边以ASC字符显示,所有不可打印字符用句号(。)表示。每行显示16个字节的内容,在第八和第九个字节之间有一个连字符 - 此命令隐含的段地址为DS的值。若未指定起始地址,则D命令从显示的最后一个单元的下一个单元开始显示,若以前没有使用给D命令, 则从初使化的段寄存器的内容,加上地址偏移量 0100H

23、 开始显示。例:-d10,4f即为显示DS:4f的内容在D命令中如不指出段地址,则其默认为DS段。l 修改内存命令 格式:E起始地址数据行功能:用给定内容从指定的地址开始修改内存值。例:-E100 41 42 43 44 48 47 46 45-D 100, 10808F1:0100 41 42 43 44 48 47 46 45 ABCDHGFE格式:F地址范围 字节或字节串 填写命令功能: 将要填写的字节或字节串填入由地址范围指定的存储器中。如:-F 100 105 "MSDOS"-d 100 l0fl 退出命令格式:Ql 寄存器命令格式:R 寄存器 功能: 一、显示单

24、个寄存器的内容,并提供修改功能;二、显示所有寄存器内容, 再加上字母标志位状态以及要执行的下一条指令;三、显示8个标志位状态, 并提供修改功能。若不想改变则回车即可。例:-r bxbx 0050:51-rAX=0000 BX=0051 CX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=0003 ES=0CD3 SS=0CD3 IP=0100 NV UP EI PL NZ NA PO NC0CD3:0100 0F DB OF若想改变标志寄存器,用-RF回车,则DEBUG会将标志内容显示出来,若想改变任一标志,只要输入该标志的名称即可。标志名称 设置 未设置 标志

25、名称 设置 未设置滋出 OV(溢出) NV(未溢出) 零位 ZR NZ(不等于零)方向 DN(减少) UP(增加) 辅助进位 AC NA(无进位)中断 EI(许可) DI(禁止) 奇偶标志 PE(偶) PO(奇)符号 NG(负) PL(正) 进位 CY NC(清除进位)例:-RfNV UP EI PL NZ NA PO NC :-OV DI 输入值l 汇编命令格式:A 地址 功能: 将指令直接汇编成机器码输入到内存中。说明: 用于小段程序的汇编及修改目标程序,所有输入的数字均采用十六进制, 用户装入内存的汇编语句是连续存放的,若没有指定地址,并且前面没有使用汇编命令,该语句被汇编到 CS:01

26、00区域。例A:>DEBUG-a 010008F1:0100 MOV AH,0908F1:0102 MOV DX,10908F1:0105 l 反汇编命令格式:U 起始地址 或者 地址范围功能: 将内存中的内容转换为汇编语句。说明: 反汇编的字节数取决与用户的系统显示形式,以及在U命令中使用的可选项。从指定地址开始编译,反汇编32个字节-U地址从CS:100开始,其反汇编32个字节如果地址被省略,则从一个U命令的最后一条指令的下一条单元开始汇编32个字节。对指定的存贮范围进行反汇编-u起始地址 终止地址例:-U 100 10908F1:0100 CD20 INT 2008F1:0102

27、FF9F009A CALL FA12BX+9A0008F1:0106 F0 LOCK08F1:0107 FE1D CALL FAR DI08F1:0109 F0 LOCK说明:如指定了范围则整个范围全都会被反编译l 汇编程序执行命令格式:G起始地址 结束地址功能: 执行正在调试的程序,当达到断点时停止执行, 并且显示寄存器标志和下一条要执行的命令。说明: 如果没有指定起始地址,那么当前指令地址由CS,IP寄存器的内容来决定,如果用户指定起始地址就从指定的起始地址开始执行。如果指定断点,当指令到达指令地址时停止执行,并显示各寄存器标志位的内容和下一条要执行的命令,最多允许用户设定10个断点。l 单步执行命令格式: T=地址 指令条数 功能: 逐条跟踪程序的执行,每条指令执行后都将显示各寄存器的内容。说明: 通常采用跟踪一条指令,但用户也可以用指令条数设定一次跟踪多

温馨提示

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

评论

0/150

提交评论