《2022年微机原理及应用实验报告 4.pdf》由会员分享,可在线阅读,更多相关《2022年微机原理及应用实验报告 4.pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、0 实验报告课 程 名 称实 验 名 称实 验 日 期学 生 专 业学 生 学 号学 生 姓 名教 师 姓 名成绩南京理工大学机械工程学院微 机 原 理 及实验 1 DEBUG操作实验实验 2 汇编程序设计实验年月日至年月日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 15 页 - - - - - - - - - 1 实验一 DEBUG命令及其操作一、实验目的1熟练掌握 debug 的常用命令,学会用debug 来调试程序。2深入了解数据在存储器中的存取方法及堆栈中数据
2、的压入与弹出。3掌握各种寻址方法以及简单指令的执行过程。二、实验要求1实验前要作好充分准备,包括汇编程序清单、调试步骤、 调试方法以及对程序结果的分析等。2本实验要求在PC机上进行。3本实验只要求在DEBUG 调试状态下进行, 包括汇编程序, 调试程序, 执行程序。三、实验内容实验内容1:学习用DEBUG 调试工具进行源程序的输入、汇编、调试和执行。实验报告要求:1写出运行结果;2小结 debug 常用命令及使用体会答: 1. 原文已给出(略) 2 a 汇编d显示内存单元内容e修改单元内存内容g执行命令t 单步(或多步)调试n指定文件路径文件名(含扩展名)u反汇编r 查看寄存器值及修改l 加载
3、程序 w写盘命令体会:提升学习热情和动手能力有助于理解代码执行过程实验内容2设 AX=3000H ,BX=5000H ,请编一程序段将AX的内容和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG 调试程序进行汇编与调试。实验报告要求:1写出完成上述功能的程序段;2 单步执行,并记录寄存器AX, BX 及堆栈指针SP的值答:A100 Mov ax,3000 ; ax:3000 bx:0000 sp:ffeeMov bx,5000 ;ax:3000 bx:5000 sp:ffeePush ax ;ax:3000 bx:5000 sp:ffec名师资料总结 - - -精品
4、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 15 页 - - - - - - - - - 2 Mov ax,bx ; ax:5000 bx:5000 sp:ffecPop bx ; ax:5000 bx:3000 sp:ffeeInt 20实验内容 3设 DS= 当前段地址,BX=0300H , SI=0002H, 请用 DEBUG 的命令将存储器偏移地址300H304H连续单元装入0AH ,0BH ,0CH ,0DH ,0EH 。在 DEBUG 状态下送入下面的程序,并用单步执行的方法,分析每
5、条指令源地址的形成过程当数据传送完毕时,AX中的内容是什么实验报告要求:1写出源操作数的寻址方式;2单步执行,并记录相关寄存器及存储单元的值A100 ;给各内存单元赋值Mov di,0300 Mov dx,0a Mov cx,5 1oop1:movdi,dxInc diInc dx1oop loop1程序清单如下:寻址方式和AX的内容M OV BX,0300 立即寻址M OV SI , 0002 立即寻址MOV AX ,BX 寄存器寻址 AX: 0300 M OV AX,0304H 立即寻址 AX:0304MOV AX ,0304H 存储器直接寻址 AX:ds:0304 内存单元的内容0EHM
6、OV AX ,BX 寄存器间接寻址 AX:ds:0300 内存单元的内容0AHMOV AX ,0001BX 基址相对寻址 AX:ds:0301 内存单元的内容0BHMOV AX ,BXSI 基址变址寻址 AX:ds:0302 内存单元的内容0CHMOV AX ,0001BXSI 基址变址寻址 AX:ds:0303内存单元的内容0DH实验内容 4设 AX=0002H ,编写程序将AX的内容乘 10,要求用移位的方法完成。写出实现上实验报告要求:1述功能的程序段;2单步执行程序,记录每条指令的机器码及相关寄存器的内容注意:左移指令用SHL ,而不能使用SAL A100Mov ax,2 机器码: b
7、80200 ax:0002 dx:0000 cl:00Mov dx,0 机器码: ba0000 ax:0002 dx:0000 cl:00Shl ax,1 机器码: d1e0 ax:0004 dx:0000 cl:00Mov dx,ax 机器码: 01d0 ax:0004 dx:0004 cl:00 Mov cl,2 机器码: b102 ax:0004 dx:0004 cl:02Shl ax,cl 机器码: d3e0 ax:0010 dx:0004 cl:02 Add ax,dx 机器码: 01d0 ax:0014 dx:0004 cl:02Int 20 机器码: cd20 ax:0014 d
8、x:0004 cl:02名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 15 页 - - - - - - - - - 3 实验二简单程序的编写及汇编连接一、 实验目的1熟练掌握编写汇编语言源程序的基本方法和基本框架。2学会编写顺序结构、分支结构和循环结构的汇编程序,掌握宏定义与宏调用的方法。3掌握程序中数据的产生与数输出的方法。4熟悉建立源文件,进行汇编和连接的全过程,并对程序进行调试。二、 实验要求1实验前准备分析题目,将程序中的原始数据、 中间结果和最终结果的存取方式
9、确定好。写出算法或画出流程图。写出源程序。对程序中的结果进行分析,并准备好上机调试的过程。2本实验要求在PC机上进行。3汇编过程中出现问题,可用DEBUG 进行调试。三、 实验内容1实验内容1编辑源程序 ( 参考程序见下 ) ,建立 .ASM 文件;用 MASM 程序汇编,生成 .OBJ 文件; 查看 .LST 文件的内容用 LINK 程序链接,生成 .EXE 文件; 使用 DEBUG 命令将 .EXE 文件调进内存,执行后查看程序运行结果;使用 DEBUG 命令,检查各段在内存当中分配情况。参考程序:; exercize21data segment org 0200h buffer dw 0
10、, 1, -5, 10, 256, -128, -100, 45, 6, 3, dw -15,-67, 39, 4, 20, -1668, -32766, 32765, -525,dw 300 count equ ($-buffer)/2 max dw data endsstack segment stack stack db 100 dup (s)stack endscode segment para code名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 15 页 -
11、 - - - - - - - - 4 assume cs:code, ds:data, ss:stacksta proc far push dsxor ax, ax push ax mov ax, data mov ds, ax lea si, buffer mov cx, count dec cx mov ax, sichkmax: add si, 2 cmp si, ax jle next mov ax, sinext: loop chkmax mov max, ax retsta endpcode ends end sta实验报告要求:1小结汇编语言源程序的编译及连接过程;2记录数据段在
12、程序执行前后的内容3写出程序调试中出现的问题及解决方法;答:1把待汇编的程序放在存放汇编、链接程序的文件夹里打开汇编程序输入待汇编的程序名字,以默认配置生成obj 文件,再打开链接程序输入待链接的程序名字以默认配置生成 exe文件2执行前后 buff 数据数据块不变 max 执行前数据为 0000H执行后为 7ffdH3很顺利作业:编程并且在计算机上调试。用汇编语言编写一个加法程序:1234+5678请用 ASCII 码的形式将加数与被加数存放在数据区DATA1和 DATA2中,并将相加的结果显示输出。假设有一组数据:5, -4 ,0, 3,100,-51 ,请编一程序,判断每个数是否大于 0
13、,等于 0,还是小于0,并输出判断结果。即:1 当 x0y = 0 当 x=0-1 当 x0名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 15 页 - - - - - - - - - 5 sstack segment dw 32 dup()sstack endsdata segmentdata1 db 1234data2 db 5678 data3 db 4 dup()data endscode segment assume cs:code,ss:sstack,ds:d
14、atasta:push ds xor ax,ax push ax mov ax,data mov ds,ax lea si,data1 lea di,data2 lea bx,data3 mov al,si+3 mov ah,di+3 and al,0fh and ah,0fh add al,ah or al,30h mov bx+3,al mov al,si+2 mov ah,di+2 and al,0fh and ah,0fh adc al,ah or al,30h mov bx+2,al mov al,si+1 mov ah,di+1 and al,0fh and ah,0fh adc
15、al,ah or al,30h mov bx+1,al mov al,si mov ah,di and al,0fh and ah,0fh adc al,ah名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 15 页 - - - - - - - - - 6 or al,30h mov bx,al mov cx,4 mov ah,2ha1:mov dl,bx int 21h inc bx loop a1 retcode ends end stasstack segment s
16、tack stack dw 32 dup()sstack endsdata segment buff db 12,-23,5,-4 ,0,3,100,-51,3,-45,9,2 data endscount equ $-buffcode segment assume ss:sstack,ds:data,cs:codestart prog far push ds xor ax,ax push ax mov ax,data mov ds,ax lea bx,buff lea si,count mov cx,siloop1:mov al,bx cmp al,0 jz aa1 and al,80h j
17、z aa2 mov ah,2 mov dl,2dh int 21h aa: inc bx loop loop1 jmp ov aa1:mov ah,2 mov dl,30h int 21h jmp aa名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 15 页 - - - - - - - - - 7 aa2:mov ah,2 mov dl,31h int 21h jmp aa ov:retstart endpcode ends end start实验三 8254 定时/计数
18、器应用实验一、实验目的1、掌握 8254 的工作方式及应用编程;2、掌握 8254 典型应用电路的接法。二、实验设备 PC机一台, TD-PIE 实验装置一套,示波器一台。三、实验内容 1、计数应用实验。编写程序,应用8254 的计数功能,使用单次脉冲模拟计数,使每当按动 KK1 +5 次后,产生一次计数中断,并在屏幕上显示一个字符M 。 2、定时应用实验。编写程序,应用8254 的定时功能,产生一个1 ms 的方波。1、计数应用实验编写程序,将8254 的计数器0 设置为方式3,计数值为十进制数4,用单次脉冲KK 1+作为 CLK0时钟, OUT0连接 MIR7,每当 KK1+ 按动 5 次
19、后产生中断请求,在屏幕上显示字符M 。实验步骤:(1) 实验接线如图4-2 所示;(2) 编写实验程序,经编译、链接无误后装入系统;(3) 运行程序,按动KK1+ 产生单次脉冲,观察实验现象;(4) 改变计数值,验证8254 的计数功能。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 15 页 - - - - - - - - - 8 实验程序清单:A8254 EQU 06C0H ;8254 计数器 0 的端口地址B8254 EQU 06C2H ;8254 计数器 1 的端
20、口地址C8254 EQU 06C4H ;8254 计数器 2 的端口地址CON8254 EQU 06C6H ;8254 控制字寄存器的端口地址SSTACK SEGMENT STACKDW 32 DUP()SSTACK ENDSCODE SEGMENTASSUME CS:CODE, SS:SSTACKSTART : PUSH DSMOV AX, 0000HMOV DS ,AXLea ax,irq7mov si,3chmov si,axmov ax,seg irq7mov si+2,axCLIPOP DS; 初始化主片8259,其端口地址为20H和 21HMOV AL,11H图 8254计数应用实
21、验接线图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 15 页 - - - - - - - - - 9 OUT 20H,AL ; ICW1MOV AL,08HOUT 21H,AL ; ICW2MOV AL,04HOUT 21H,AL ; ICW3MOV 21H ,01HOUT 21H ,AL ; ICW4MOV AL,6FH ; OCW1OUT 21H,AL;初始化 8254MOV DX ,CON8254MOV AL,_11h_ ;计数器0,方式 0OUT DX,ALM
22、OV DX ,A8254MOV AL,_04h_ ;给计数器0 送初值OUT DX,ALSTIAA1 : JMP AA1;中断服务程序IRQ7: MOV AX,014DHINT 10H ;显示字符MMOV AX ,0120HINT 10HMOV AL,_20h_OUT _20h_,AL ;中断结束命令IRETCODE ENDS END SEGMENT2、定时应用实验编写程序, 将 8254 的计数器0 设置为方式3,用信号源 1MHz作为 CLK0时钟,OUT0输出波形为1 ms 方波。实验步骤:(1)接线图如图4-3 所示;(2)根据实验内容,编写实验程序,经编译、链接无误后装入系统;名师资
23、料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 15 页 - - - - - - - - - 10 (3)运行实验程序,用示波器测试OUT0 输出,验证程序功能。实验程序清单A8254 EQU 06C0HB8254 EQU 06C2HC8254 EQU 06C4HCON8254 EQU 06C6HSSTACK SEGMENT STACKDW 32 DUP()SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART : MOV DX ,CON8254
24、 MOV AL,_37h_ ;8254 控制字,计数器0,方式 3 OUT DX,AL MOV DX,A8254MOV AL,_63h_ ;给计数器0 送初值OUT DX,ALMOV AL,_09h_OUT DX,ALAA1 : JMP AA1CODE ENDS END START六、思考题1、在将计数初值赋给8254 后,马上就可以启动并进行定时或计数吗答:不是,计数的开始还得看门控信号,在写入初值后若门控信号有效(软件触发为高电平有效, 硬件触发为上升沿有效)则开始计数, 否则等待有效门控信号的到来才开始计数图 8254定时应用实验接线图名师资料总结 - - -精品资料欢迎下载 - - -
25、 - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 15 页 - - - - - - - - - 11 2、若 CLK0输入的时钟,能否在OUT0实现输出 30ms的定时脉冲答:30*1925=5775065535 所以用二进制写初值方式可以实现,若用十进制方式写初值则不能实现(十进制最大计数初值为0,即 10000)实验四 8255 并行接口实验一、实验目的 1 、学习并掌握8255 的工作方式及其应用; 2、掌握 8255 典型应用电路的接法。二、实验设备PC机一台, TD-PITE 实验装置一套。三、实验内容1、基本输
26、入输出实验。本实验系统中,8255 的端口地址分别为0640H,0642H ,0644H以及 0646H。编写程序,使 8255 的 A 口为输入,接拨动开关,B 口为输出,接发光二极管;要求只要开关拨动,发光二极管的显示就发生相应改变。2、流水灯显示实验。编写程序,使8255 的 A口和 B口均为输出, 数据灯 D7D0由左向右,每次仅亮一个灯,循环显示, D15D8与 D7D0正相反,由右向左,每次仅点亮一个灯,循环显示。四、实验原理并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或 32 位等。 82
27、55 可编程外围接口芯片是Intel公司生产的通用并行I/O 接口芯片,它具有A, B, C三个并行接口,用+5 V单电源供电, 能在以下三种方式下工作:方式 0基本输入 / 输出方式、 方式 1选通输入/ 输出方式、方式2双向选通工作方式。8255 的内部结构及引脚如图5-1 所示, 8255工作方式控制字和C口按位置位 / 复位控制字格式如图5-2 所示。图 8255内部结构及外部引脚图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 15 页 - - - - - -
28、 - - - 12 五、实验步骤1、基本输入输出实验本实验使 8255 端口 A工作在方式0 并作为输入口,端口B工作在方式0 并作为输出口。用一组开关信号接入端口A,端口 B输出线接至一组发光二极管上,然后通过对8255芯片编程来实现输入输出功能。具体实验步骤如下述: (1) 实验接线图如图5-3 所示,按图连接实验线路图; (2) 编写实验程序,经编译、连接无误后装入系统; (3) 运行程序,改变拨动开关,同时观察LED显示,验证程序功能。实验程序清单SSTACK SEGMENT STACK DW 32 DUP ()SSTACK ENDSCODE SEGMENT ASSUME CS:COD
29、E图 8255控制字格式图 5-3 8255基本输入输出实验接线图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 15 页 - - - - - - - - - 13 START : MOV DX ,0646HMOV AL,_90h_ ;8255 的工作方式控制字OUT DX,ALAA1 : MOV DX,0640HIN AL ,DXCALL DELAYMOV DX ,0642HOUT DX,ALJMP AA1;延时子程序DELAY : PUSH CXMOV CX ,0F
30、00HAA2 : PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDS END START 2、流水灯显示实验使 8255 的 A口和 B口均为输出,数据灯D7DO由左向右,每次仅亮一个灯,循环显示, D15D8与 D7D0正相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图 5-5 所示。实验步骤如下所述: (1) 按图 5-5 连接实验线路图; (2) 编写实验程序,经编译、链接无误后装入系统; (3) 运行程序,观察LED灯的显示,验证程序功能; (4) 自己改变流水灯的方式,编写程序。实验程序清单SSTACK SEGMENT STACK DW 32 D
31、UP ()SSTACK ENDS图 5-5 8255流水灯实验接线图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 15 页 - - - - - - - - - 14 CODE SEGMENT ASSUME CS:CODEStart:mov Mov al,80hOut dx,alMov bx,0180hAa1:mov dx,0640hMov al,blOut dx,alCall delayMov dx,0642hMov al,bhOut dx,alCall delayRor bl,1Rol,bh,1Jmp aa1DELAY : PUSH CXMOV CX ,0F00HAA2 : PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDS END START 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 15 页 - - - - - - - - -