2022年微机原理及应用实验报告 2.pdf
WORD 格式专业资料整理实验报告微机原理及应用课程名称实验 1DEBUG 操作实验实验 2 汇编程序设计实验实验名称实验 38253定时/ 计数器实验实验 48255 并行接口实验年月日至年月日实验日期学生专业学生学号学生姓名教师姓名成绩南京理工大学机械工程学院0名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 15 页 - - - - - - - - - WORD 格式专业资料整理实验一 DEBUG 命令及其操作一、实验目的1熟练掌握 debug 的常用命令,学会用debug来调试程序。2深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。3掌握各种寻址方法以及简单指令的执行过程。二、实验要求1实验前要作好充分准备,包括汇编程序清单、调试步骤、调试方法以及对程序结果的分析等。2本实验要求在 PC机上进行。3本实验只要求在DEBUG 调试状态下进行,包括汇编程序,调试程序,执行程序。三、实验内容实验内容 1:学习用 DEBUG 调试工具进行源程序的输入、汇编、调试和执行。实验报告要求:1写出运行结果;2小结 debug常用命令及使用体会答:1. 原文已给出(略)2a 汇编d 显示内存单元内容e 修改单元内存内容g 执行命令t 单步(或多步)调试n 指定文件路径文件名(含扩展名)u 反汇编r 查看寄存器值及修改l 加载程序w写盘命令体会:提升学习热情和动手能力有助于理解代码执行过程实验内容 2 设 AX=3000H ,BX=5000H ,请编一程序段将AX的内容和 BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG 调试程序进行汇编与调试。实验报告要求:1写出完成上述功能的程序段;2单步执行,并记录寄存器AX,BX及堆栈指针 SP的值答:A100 Movax,3000;ax:3000bx:0000sp:ffee Movbx,5000; ax:3000bx:5000sp:ffee Pushax; ax:3000bx:5000sp:ffec 1名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 15 页 - - - - - - - - - WORD 格式专业资料整理Movax,bx;ax:5000bx:5000sp:ffec Popbx;ax:5000bx:3000sp:ffee Int20 实验内容 3 设 DS= 当前段地址, BX=0300H ,SI=0002H,请用 DEBUG 的命令将存储器偏移地址300H304H 连续单元装入 0AH ,0BH ,0CH ,0DH ,0EH 。在 DEBUG 状态下送入下面的程序,并用单步执行的方法,分析每条指令源地址的形成过程?当数据传送完毕时,AX中的内容是什么?实验报告要求:1写出源操作数的寻址方式;2单步执行,并记录相关寄存器及存储单元的值A100;给各内存单元赋值Movdi,0300 Movdx,0a Movcx,5 1oop1:movdi,dx Incdi Incdx 1ooploop1 程序清单如下:寻址方式和AX的内容MOVBX,0300立即寻址MOVSI ,0002立即寻址MOVAX,BX寄存器寻址 AX:0300 MOVAX,0304H立即寻址 AX:0304 MOVAX,0304H 存储器直接寻址 AX:ds:0304 内存单元的内容0EH MOVAX,BX 寄存器间接寻址 AX:ds:0300 内存单元的内容 0AH MOVAX,0001BX基址相对寻址 AX:ds:0301 内存单元的内容 0BH MOVAX,BXSI基址变址寻址 AX:ds:0302 内存单元的内容 0CH MOVAX,0001BXSI基址变址寻址 AX:ds:0303 内存单元的内容0DH 实验内容 4 设 AX=0002H ,编写程序将 AX的内容乘 10,要求用移位的方法完成。写出实现上实验报告要求:1述功能的程序段;2单步执行程序,记录每条指令的机器码及相关寄存器的内容注意:左移指令用SHL ,而不能使用 SAL A100 Movax,2 机器码: b80200ax:0002dx:0000cl:00 Movdx,0 机器码: ba0000ax:0002dx:0000cl:00 Shlax,1 机器码: d1e0ax:0004dx:0000cl:00 Movdx,ax 机器码: 01d0ax:0004dx:0004cl:00 Movcl,2 机器码: b102ax:0004dx:0004cl:02 Shlax,cl机器码: d3e0ax:0010dx:0004cl:02 Addax,dx 机器码: 01d0ax:0014dx:0004cl:02 2名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 15 页 - - - - - - - - - WORD 格式专业资料整理Int20 机器码: cd20ax:0014dx:0004cl:02 实验二简单程序的编写及汇编连接一、实验目的1熟练掌握编写汇编语言源程序的基本方法和基本框架。2学会编写顺序结构、分支结构和循环结构的汇编程序,掌握宏定义与宏调用的方法。3掌握程序中数据的产生与数输出的方法。4熟悉建立源文件,进行汇编和连接的全过程,并对程序进行调试。二、实验要求1实验前准备分析题目,将程序中的原始数据、中间结果和最终结果的存取方式确定好。写出算法或画出流程图。写出源程序。对程序中的结果进行分析,并准备好上机调试的过程。2本实验要求在 PC机上进行。3汇编过程中出现问题,可用DEBUG 进行调试。三、实验内容1实验内容 1 编辑源程序 (参考程序见下 ) ,建立.ASM文件;用 MASM 程序汇编,生成 .OBJ文件;查看 .LST 文件的内容用 LINK 程序链接,生成 .EXE文件;使用 DEBUG 命令将 .EXE文件调进内存,执行后查看程序运行结果;使用 DEBUG 命令,检查各段在内存当中分配情况。参考程序:;exercize21 datasegment org0200h bufferdw0,1,-5,10,256,-128,-100,45,6,3, dw-15,-67,39,4,20,-1668,-32766,32765,-525, dw300 countequ($-buffer)/2 maxdw? dataends stacksegmentstackstack db100dup(s) stackends codesegmentparacode 3名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 15 页 - - - - - - - - - WORD 格式专业资料整理assumecs:code,ds:data,ss:stack staprocfar pushds xorax,ax pushax movax,data movds,ax leasi,buffer movcx,count deccx movax,sichkmax:addsi,2 cmpsi,ax jlenext movax,si next:loopchkmax movmax,ax ret staendp codeends endsta 实验报告要 求:1小结汇编语言源程序的编译及连接过程;2记录数据段在程序执行前后的内容3写出程序调试中出现的问题及解决方法;答:1把待汇编的程序放在存放汇编、链接程序的文件夹里打开汇编程序输入待汇编的程序名字,以默认配置生成 obj 文件,再打开链接程序输入待链接的程序名字以默认配置生成exe 文件2执行前后buff数据数变max执行前0000H执7ffdH 3很顺利作业:编程并且在上 调 试 。用汇编语言编写一程序:1234+5678 请用 ASCII 码的形式将加数与被加数存放在数据区DATA1和 DATA2 中,并将相加的结果显示输出。假设有一组数据: 5,-4 ,0,3, 100,-51,?,请编一程序,判断每个数是否大于0,等于 0,还是小于 0,并输出判断结果。即 :1 当 x0 y=0 当 x=0 -1 当 x0 4名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 15 页 - - - - - - - - - WORD 格式专业资料整理sstacksegment dw32dup(?) sstackends datasegment data1db1234 data2db5678data3db4dup(?) dataends codesegment assumecs:code,ss:sstack,ds:data sta:pushds xorax,ax pushax movax,data movds,ax leasi,data1 leadi,data2 leabx,data3 moval,si+3 movah,di+3 andal,0fh andah,0fh addal,ah oral,30h movbx+3,al moval,si+2 movah,di+2 andal,0fh andah,0fh adcal,ah oral,30h movbx+2,al moval,si+1 movah,di+1 andal,0fh andah,0fh adcal,ah oral,30h movbx+1,al moval,si movah,di andal,0fh andah,0fh adcal,ah 5名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 15 页 - - - - - - - - - WORD 格式专业资料整理oral,30h movbx,al movcx,4 movah,2h a1:movdl,bx int21h incbx loopa1 ret codeends endsta sstacksegmentstackstack dw32dup(?) sstackends datasegment buffdb12,-23,5,-4,0,3,100, -51,3,-45,9,2 dataends countequ$-buff codesegment assumess:sstack,ds:data,cs:code startprogfar pushds xorax,ax pushax movax,data movds,ax leabx,buff leasi,count movcx,si loop1:moval,bx cmpal,0 jzaa1 andal,80h jzaa2 movah,2 movdl,2dh int21h aa:incbx looploop1 jmpov aa1:movah,2 movdl,30h int21h jmpaa 6名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 15 页 - - - - - - - - - WORD 格式专业资料整理aa2:movah,2 movdl,31h int21h jmpaa ov:ret startendp codeends endstart 实验三 8254 定时/ 计数器应用实验一、实验目的1、掌握 8254的工作方式及应用编程;2、掌握 8254典型应用电路的接法。二、实验设备PC机一台, TD-PIE 实验装置一套,示波器一台。三、实验内容1、计数应用实验。编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动 KK1+ 5 次后,产生一次计数中断,并在屏幕上显示一个字符M 。2、定时应用实验。编写程序,应用8254的定时功能,产生一个1ms的方波。1、计数应用实验编写程序,将 8254 的计数器 0 设置为方式 3,计数值为十进制数4,用单次脉冲 KK1+ 作为 CLK0时钟, OUT0 连接 MIR7 ,每当 KK1+ 按动 5 次后产生中断请求,在屏幕上显示字符 M 。实验步骤:(1) 实验接线如图 4-2 所示;(2) 编写实验程序,经编译、链接无误后装入系统;(3) 运行程序,按动 KK1+ 产生单次脉冲,观察实验现象;(4) 改变计数值,验证8254 的计数功能。7名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 15 页 - - - - - - - - - WORD 格式专业资料整理图 4.28254 计数应用实验接线图实验程序清单:A8254EQU06C0H; 8254 计数器 0 的端口地址B8254EQU06C2H; 8254 计数器 1 的端口地址C8254EQU06C4H; 8254 计数器 2 的端口地址CON8254EQU06C6H; 8254控制字寄存器的端口地址SSTACKSEGMENTSTACK DW32DUP(?) SSTACKENDS CODESEGMENT ASSUMECS:CODE,SS:SSTACK START:PUSHDS MOVAX,0000H MOVDS,AX Leaax,irq7 movsi,3ch movsi,ax movax,segirq7 movsi+2,ax CLI POPDS ; 初始化主片 8259,其端口地址为 20H和 21H MOVAL ,11H 8名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 15 页 - - - - - - - - - WORD 格式专业资料整理OUT20H ,AL;ICW1 MOVAL ,08H OUT21H ,AL;ICW2 MOVAL ,04H OUT21H ,AL;ICW3 MOV21H,01H OUT21H ,AL;ICW4 MOVAL ,6FH ;OCW1 OUT21H ,AL ;初始化 8254 MOVDX,CON8254 MOVAL ,_11h_ ;计数器 0,方式 0 OUTDX ,AL MOVDX,A8254 MOVAL ,_04h_ ;给计数器 0 送初值OUTDX ,AL STI AA1 :JMPAA1 ;中断服务程序IRQ7:MOVAX, 014DH INT10H ;显示字符 M MOVAX,0120H INT10H MOVAL , _20h_ OUT_20h_ , AL;中断结束命令IRET CODEENDS ENDSEGMENT 2、定时应用实验编写程序,将 8254 的计数器 0 设置为方式 3,用信号源 1MHz作为 CLK0时钟, OUT0 输出波形为 1ms方波。实验步骤:(1)接线图如图 4-3 所示;(2)根据实验内容,编写实验程序,经编译、链接无误后装入系统;9名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 15 页 - - - - - - - - - WORD 格式专业资料整理图 4.38254 定时应用实验接线图(3)运行实验程序,用示波器测试OUT0 输出,验证程序功能。实验程序清单A8254EQU06C0H B8254EQU06C2H C8254EQU06C4H CON8254EQU06C6H SSTACKSEGMENTSTACK DW32DUP(?) SSTACKENDS CODESEGMENT ASSUMECS:CODE START :MOVDX,CON8254 MOVAL,_37h_;8254控制字,计数器 0,方式 3 OUTDX,AL MOVDX,A8254 MOVAL , _63h_;给计数器 0 送初值OUTDX ,AL MOVAL , _09h_ OUTDX ,AL AA1 :JMPAA1 CODEENDS ENDSTART 六、思考题1、在将计数初值赋给8254后,马上就可以启动并进行定时或计数吗?答:不是,计数的开始还得看门控信号,在写入初值后若门控信号有效(软件触发为高电平有效,硬件触发为上升沿有效)则开始计数,否则等待有效门控信号的到来才开始计数10名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 15 页 - - - - - - - - - WORD 格式专业资料整理2、若 CLK0输入 1.925MHz的时钟,能否在 OUT0 实现输出 30ms的定时脉冲?答:30*1925=5775065535所以用二进制写初值方式可以实现,若用十进制方式写初值则不能实现(十进制最大计数初值为0,即 10000)实验四 8255 并行接口实验一、实验目的1、学习并掌握 8255 的工作方式及其应用;2、掌握 8255 典型应用电路的接法。二、实验设备PC机一台, TD-PITE实验装置一套。三、实验内容1、基本输入输出实验。本实验系统中, 8255 的端口地址分别为0640H ,0642H ,0644H以及 0646H 。编写程序,使 8255的 A口为输入,接拨动开关,B口为输出,接发光二极管;要求只要开关拨动,发光二极管的显示就发生相应改变。2、流水灯显示实验。编写程序,使 8255的 A口和 B口均为输出,数据灯D7D0由左向右,每次仅亮一个灯,循环显示, D15D8 与 D7D0 正相反,由右向左,每次仅点亮一个灯,循环显示。四、实验原理并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或 32 位等。8255可编程外围接口芯片是 Intel公司生产的通用并行I/O 接口芯片,它具有A,B,C 三个并行接口,用 +5V单电源供电,能在以下三种方式下工作:方式0基本输入 / 输出方式、方式 1选通输入 / 输出方式、方式 2双向选通工作方式。8255的内部结构及引脚如图5-1 所示, 8255工作方式控制字和 C口按位置位 / 复位控制字格式如图5-2 所示。图 5.18255 内部结构及外部引脚图11名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 15 页 - - - - - - - - - WORD 格式专业资料整理五、实验步骤1、基本输入输出实验本实验使 8255端口 A工作在方式 0 并作为输入口,端口B工作在方式 0 并作为输出口。图 5.28255 控制字格式用一组开关信号接入端口A,端口 B输出线接至一组发光二极管上,然后通过对8255 芯片编程来实现输入输出功能。具体实验步骤如下述:(1) 实验接线图如图 5-3 所示,按图连接实验线路图; (2) 编写实验程序,经编译、连接无误后装入系统; (3) 运行程序,改变拨动开关,同时观察LED显示,验证程序功能。图 5-38255 基本输入输出实验接线图实验程序清单SSTACKSEGMENTSTACK DW32DUP(?)SSTACKENDS CODESEGMENT ASSUMECS: CODE 12名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 15 页 - - - - - - - - - WORD 格式专业资料整理START :MOVDX,0646H MOVAL ,_90h_ ; 8255的工作方式控制字OUTDX ,AL AA1 :MOVDX,0640H INAL,DX CALLDELAY MOVDX,0642H OUTDX ,AL JMPAA1 ;延时子程序DELAY :PUSHCX MOVCX,0F00H AA2 :PUSHAX POPAX LOOPAA2 POPCX RET CODEENDS ENDSTART 2、流水灯显示实验使 8255 的 A口和 B口均为输出,数据灯D7DO 由左向右,每次仅亮一个灯,循环显示,D15D8 与 D7D0 正相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图 5-5 所示。实验步骤如下所述:(1) 按图 5-5 连接实验线路图;(2) 编写实验程序,经编译、链接无误后装入系统;(3) 运行程序,观察 LED灯的显示,验证程序功能;(4) 自己改变流水灯的方式,编写程序。图 5-58255 流水灯实验接线图实验程序清单SSTACKSEGMENTSTACK DW32DUP(?)SSTACKENDS 13名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 15 页 - - - - - - - - - WORD 格式专业资料整理CODESEGMENT ASSUMECS: CODE Start:movdx.0646h Moval,80h Outdx,al Movbx,0180h Aa1:movdx,0640h Moval,bl Outdx,al Calldelay Movdx,0642h Moval,bh Outdx,al Calldelay Rorbl,1 Rol,bh,1 Jmpaa1 DELAY :PUSHCX MOVCX,0F00H AA2 :PUSHAX POPAX LOOPAA2 POPCX RET CODEENDS ENDSTART 14 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 15 页 - - - - - - - - -