




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实 验 报 告课程名称微机原理及应用实验名称实验1 DEBUG 操作实验 实验 2汇编程序设计实验实验3 8253 定时 /计数器实验 实验 48255 并行接口实验实验日期年 月 日 至 年月日学生专业学生学号学生姓名教师姓名成绩南京理工大学机械工程学院实验一 DEBUG 命令及其操作一、实验目的1 熟练掌握 debug 的常用命令,学会用 debug 来调试程序。2 深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。3 掌握各种寻址方法以及简单指令的执行过程。二、实验要求1 实验前要作好充分准备,包括汇编程序清单、调试步骤、调试方法以及对程序结果的分 析等。2 本实验要求在 PC
2、机上进行。3 本实验只要求在 DEBUG 调试状态下进行,包括汇编程序,调试程序,执行程序。三、实验内容实验内容 1:学习用 DEBUG 调试工具进行源程序的输入、汇编、调试和执行。 实验报告要求:1 写出运行结果;2 小结 debug 常用命令及使用体会答: 1.原文已给出(略)2 a 汇编d 显示内存单元内容e 修改单元内存内容g 执行命令t 单步(或多步)调试n 指定文件路径文件名(含扩展名)u 反汇编r 查看寄存器值及修改l 加载程序w 写盘命令 体会:提升学习热情和动手能力 有助于理解代码执行过程实验内容 2设 AX=3000H , BX=5000H ,请编一程序段将 AX 的内容和
3、 BX 的内容进行交换。请用 堆栈作为两寄存器交换内容的中间存储单元,用 DEBUG 调试程序进行汇编与调试。 实验报告要求:1 写出完成上述功能的程序段;2 单步执行,并记录寄存器 AX, BX 及堆栈指针 SP的值答:A100Mov ax,3000 ; ax:3000 bx:0000 sp:ffeeMov bx,5000 ; ax:3000 bx:5000 sp:ffee Push ax; ax:3000 bx:5000 sp:ffecMov ax,bxPop bxInt 20; ax:5000 bx:5000 sp:ffec; ax:5000 bx:3000 sp:ffee实验内容 3设
4、 DS= 当前段地址,300H304H 连续单元装入BX=0300H ,SI=0002H ,请用 DEBUG 的命令将存储器偏移地址 0AH ,0BH ,0CH ,0DH ,0EH。在 DEBUG 状态下送入下面的程序,并用单步执行的方法,分析每条指令源地址的形成过程?当数据传送完毕时, AX 中的 内容是什么? 实验报告要求:1 写出源操作数的寻址方式;2 单步执行,并记录相关寄存器及存储单元的值A100;给各内存单元赋值Mov di,0300Mov dx,0aMov cx,51oop1:movdi,dxInc diInc dx1oop loop1程序清单如下寻址方式和 AX 的内容MOVB
5、X ,0300立即寻址MOVSI,0002立即寻址MOVAX ,BX寄存器寻址AX: 0300MOVAX ,0304H立即寻址AX:0304MOVAX ,0304H 存储器直接寻址AX:ds:0304内存单元的内容0EHMOVAX ,BX寄存器间接寻址AX:ds:0300内存单元的内容0AHMOVAX ,0001BX 基址相对寻址AX:ds:0301内存单元的内容0BHMOVAX ,BXSI 基址变址寻址AX:ds:0302内存单元的内容0CHMOVAX ,0001BXSI 基址变址寻址AX:ds:0303内存单元的内容0DH实验内容 4设 AX=0002H,编写程序将 AX 的内容乘10,要
6、求用移位的方法完成。写出实现上实验报告要求:1 述功能的程序段;2 单步执行程序,记录每条指令的机器码及相关寄存器的内容:左移指令用SHL,而不能使用SALA100Mov ax,2机器码:b80200ax:0002dx:0000cl:00Mov dx,0机器码:ba0000ax:0002dx:0000cl:00Shl ax,1机器码:d1e0ax:0004dx:0000cl:00Mov dx,ax机器码:01d0ax:0004dx:0004cl:00Mov cl,2机器码:b102 ax:0004 dx:0004 cl:02Shl ax,cl机器码:d3e0ax:0010dx:0004cl:0
7、2Add ax,dx机器码:01d0ax:0014dx:0004cl:02Int 20机器码: cd20 ax:0014 dx:0004 cl:02实验二 简单程序的编写及汇编连接一、实验目的1 熟练掌握编写汇编语言源程序的基本方法和基本框架。2 学会编写顺序结构、分支结构和循环结构的汇编程序,掌握宏定义与宏调用的方法。3 掌握程序中数据的产生与数输出的方法。4 熟悉建立源文件,进行汇编和连接的全过程,并对程序进行调试。二、实验要求1 实验前准备 分析题目,将程序中的原始数据、中间结果和最终结果的存取方式确定好。 写出算法或画出流程图。 写出源程序。 对程序中的结果进行分析,并准备好上机调试的
8、过程。2 本实验要求在 PC 机上进行。3 汇编过程中出现问题,可用 DEBUG 进行调试。三、实验内容1实验内容 1 编辑源程序 ( 参考程序见下 ),建立 . ASM 文件; 用 MASM 程序汇编,生成 .OBJ 文件; 查看 .LST 文件的内容 用 LINK 程序链接,生成 .EXE 文件; 使用 DEBUG 命令将 .EXE 文件调进内存,执行后查看程序运行结果; 使用 DEBUG 命令,检查各段在内存当中分配情况。 参考程序:; exercize21data segmentorg 0200hbufferdw0, 1,-5,10,256, -128,-100,45, 6,3,dw-
9、15,-67,39,4,20, -1668,-32766,32765,-525,dw300countequ($-buffer)/2maxdw?data endsstack segment stack stack db 100 dup (s)stack ends code segment para codeassume cs:code, ds:data, ss:stack sta proc farpush dsxor ax, axpushaxmovax,datamovds,axleasi,buffermovcx,countdeccxmovax,sichkmax: addsi,2cmpsi,axj
10、lenextmovax, sinext:loopchkmaxmovmax, axretstaendpcodeendsend sta实验报告要求:123小结汇编语言源程序的编译及连接过程; 记录数据段在程序执行前后的内容 写出程序调试中出现的问题及解决方法;1 把待汇编的程序放在存放汇编、 链接程序的文件夹里打开汇编程序输入待汇编的程序名 字 ,以默认配置生成 obj 文件,再打开链接程序输入待链接的程序名字以默认配置生成 exe文件2 执行前后 buff 数据数据块不变max执行前数据为 0000H 执行后为 7ffdH3 很顺利作业:编程并且在计算机上调试。用汇编语言编写一个加法程序: 12
11、34+5678请用 ASCII 码的形式将加数与被加数存放在数据区 DATA1 和 DATA2 中,并将相加的结 果显示输出。假设有一组数据: 5,-4, 0,3, 100, -51,请编一程序,判断每个数是否大于 0,等于 0,还是小于 0,并输出判断结果。即:1当 x0y =0当 x=0-1当 x0 sstack segmentdw 32 dup(?) sstack endsdata segmentdata1 db 1234data2 db 5678data3 db 4 dup(?)data endscode segmentassume cs:code,ss:sstack,ds:datas
12、ta:push dsxor ax,axpush axmov ax,datamov ds,axlea si,data1lea di,data2lea bx,data3mov al,si+3mov ah,di+3and al,0fhand ah,0fhadd al,ahor al,30hmov bx+3,almov al,si+2mov ah,di+2and al,0fhand ah,0fhadc al,ahor al,30hmov bx+2,almov al,si+1mov ah,di+1and al,0fhand ah,0fhadc al,ahor al,30hmov bx+1,almov a
13、l,simov ah,diand al,0fhand ah,0fhadc al,ahor al,30hmov bx,almov cx,4mov ah,2ha1:mov dl,bxint 21hinc bxloop a1retcode endsend sta sstack segment stack stackdw 32 dup(?) sstack ends data segmentbuff db 12,-23,5,-4 ,0,3,100,-51,3,-45,9,2data ends count equ $-buff code segmentassume ss:sstack,ds:data,cs
14、:codestart prog farpush dsxor ax,axpush axmov ax,datamov ds,axlea bx,bufflea si,countmov cx,si loop1:mov al,bxcmp al,0jz aa1and al,80hjz aa2mov ah,2mov dl,2dhint 21haa: inc bxloop loop1jmp ovaa1:mov ah,2mov dl,30hint 21hjmp aaaa2:mov ah,2 mov dl,31h int 21h jmp aa ov:ret start endp code ends end sta
15、rt实验三 8254 定时/计数器应用实验一、实验目的1、掌握 8254 的工作方式及应用编程;2、掌握 8254 典型应用电路的接法。二、实验设备PC 机一台, TD-PIE 实验装置一套,示波器一台。三、实验内容1、计数应用实验。编写程序,应用 8254 的计数功能,使用单次脉冲模拟计数,使每当 按动 KK1 + 5次后,产生一次计数中断,并在屏幕上显示一个字符M。2、定时应用实验。编写程序,应用 8254 的定时功能,产生一个 1 ms的方波。 1、计数应用实验编写程序, 将 8254的计数器 0 设置为方式 3,计数值为十进制数 4,用单次脉冲 KK 1+ 作为 CLK0 时钟, OU
16、T0 连接 MIR7 ,每当 KK1+ 按动 5次后产生中断请求,在屏幕上显示 字符 M 。实验步骤:(1) 实验接线如图 4-2 所示;(2) 编写实验程序,经编译、链接无误后装入系统;(3) 运行程序,按动 KK1+ 产生单次脉冲,观察实验现象;(4) 改变计数值,验证 8254 的计数功能。4.28254 计数应用实验接线图实验程序清单:A8254EQU06C0H;8254 计数器0 的端口地址B8254EQU06C2H;8254 计数器1 的端口地址C8254EQU06C4H;8254 计数器2 的端口地址CON8254 EQU06C6H; 8254 控制字寄存器的端口地址SSTACK
17、 SEGMENTSTACKDW 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 , 11HOUT 20H, AL MOV AL , 08H OUT 21H, AL MOV AL , 04H OUT 21H, AL MOV 21H, 01H OUT 21H,
18、AL MOV AL , 6FH OUT 21H, AL ;初始化 8254MOVMOVOUTMOVMOVOUTSTIAA1 :JMP;中断服务程序IRQ7 :MOVINTMOVINTMOVOUTIRETCODE ENDSENDDX,CON8254AL,11hDX ,ALDX,A8254AL,04hDX ,ALAA1AX , 014DH10HAX , 0120H10HAL, _20h_20h, ALSEGMENT;ICW1;ICW2;ICW3;ICW4;OCW1;计数器 0,方式 0;给计数器 0 送初值;显示字符 M;中断结束命令2、定时应用实验编写程序,将 8254的计数器 0设置为方式 3
19、,用信号源 1MHz 作为 CLK0 时钟, OUT0 输出波形为 1 ms 方波。实验步骤:(1)接线图如图 4-3 所示;(2)根据实验内容,编写实验程序,经编译、链接无误后装入系统;图 4.3 8254 定时应用实验接线图(3)运行实验程序,用示波器测试 OUT0 输出,验证程序功能。 实验程序清单A8254EQU06C0HB8254EQU06C2HC8254EQU06C4HCON8254 EQU06C6HSSTACK SEGMENT STACKSSTACKENDSCODESEGMENTASSUME CS : CODESTART:MOVDX ,CON8254MOVAL , 37hOUTD
20、X ,ALMOVDX , A8254MOVAL , _63hOUTDX ,ALMOVAL , 09hOUTDX ,ALAA1 :JMP AA1CODEENDSENDSTART思考题DW 32 DUP(?);8254 控制字,计数器;给计数器 0 送初值0,方式 3软件触发为高1、在将计数初值赋给 8254 后,马上就可以启动并进行定时或计数吗? 答:不是, 计数的开始还得看门控信号, 在写入初值后若门控信号有效电平有效, 硬件触发为上升沿有效) 则开始计数, 否则等待有效门控信号的到来才开始计数2、若 CLK0 输入 1.925MHz 的时钟,能否在 OUT0 实现输出 30ms 的定时脉冲?
21、 答: 30*1925=5775065535 所以用二进制写初值方式可以实现,若用十进制方式写初值则 不能实现(十进制最大计数初值为 0,即 10000)实验四 8255 并行接口实验一、实验目的1、学习并掌握 8255 的工作方式及其应用;2、掌握 8255 典型应用电路的接法。二、实验设备PC 机一台, TD-PITE 实验装置一套。三、实验内容1、基本输入输出实验。本实验系统中, 8255 的端口地址分别为 0640H,0642H ,0644H 以及 0646H。编写程 序,使 8255的 A 口为输入,接拨动开关, B口为输出,接发光二极管; 要求只要开关拨动, 发光二极管的显示就发生
22、相应改变。2、流水灯显示实验。编写程序,使 8255 的 A 口和 B 口均为输出,数据灯 D7D0 由左向右,每次仅亮一个 灯,循环显示, D15D8 与 D7D0 正相反,由右向左,每次仅点亮一个灯,循环显示。四、实验原理并行接口是以数据的字节为单位与 I/O 设备或被控制对象之间传递信息。 CPU 和接口 之间的数据传送总是并行的, 即可以同时传递 8 位、16 位或 32位等。 8255 可编程外围接口 芯片是 Intel 公司生产的通用并行 I/O 接口芯片, 它具有 A, B, C 三个并行接口, 用+5 V 单电 源供电,能在以下三种方式下工作:方式0基本输入 /输出方式、方式
23、1选通输入 /输出方式、方式 2双向选通工作方式。 8255 的内部结构及引脚如图 5-1 所示, 8255 工5-2 所示。作方式控制字和 C 口按位置位 /复位控制字格式如图图 5.1 8255 内部结构及外部引脚图五、实验步骤端口 B 工作在方式 0 并作为输出口。1、基本输入输出实验本实验使 8255 端口 A 工作在方式 0 并作为输入口,图 5.2 8255 控制字格式用一组开关信号接入端口 A,端口 B 输出线接至一组发光二极管上,然后通过对8255 芯片编程来实现输入输出功能。具体实验步骤如下述:(1) 实验接线图如图 5-3 所示,按图连接实验线路图 ;(2) 编写实验程序,经编译、连接无误后装入系统 ;(3) 运行程序,改变拨动开关,同时观察 LED 显示,验证程序功能。图 5-38255 基本输入输出实验接线图实验程序清单SSTACKSEGMENTSTACKDW 32DUP(?)SS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司每月生日会策划方案
- 2025年职业教育与成人继续教育专业能力考核试题及答案
- 2025年医学影像技术考试试卷及答案
- 2025年社会保障与就业考试题及答案
- 畜禽粪污资源化技术-洞察及研究
- 2025年教育信息化与学习平台构建考试试卷及答案
- 2025年环境工程师资格考试试卷及答案
- 2025年广告与传播专业考试试题及答案
- 2024年度浙江省二级造价工程师之建设工程造价管理基础知识提升训练试卷B卷附答案
- 2024年度浙江省二级注册建筑师之法律法规经济与施工题库附答案(基础题)
- (完整版)传热学期末考试试题
- JCT587-2012 玻璃纤维缠绕增强热固性树脂耐腐蚀立式贮罐
- Python数据分析与数据挖掘 课件 第6、7章 Pandas基础与应用、Matplotlib
- 玻璃体手术并发症的预防及处理
- 2023年医学高级职称-中医肛肠(医学高级)考试历年高频考点试题含答案
- 爬架拆除技术交底
- pergeos软件教程评价许可介绍
- 密封条范文模板(A4打印版)
- 出租车 专业部分考核试题 城市客运企业主要负责人和安全生产管理人员安全考核基础题库
- GB/T 9634.3-2002铁氧体磁心表面缺陷极限导则第3部分:ETD和E形磁心
- GB/T 8478-2008铝合金门窗
评论
0/150
提交评论