收藏 分享(赏)

微机原理与汇编语言综合实验[实用论文].doc

上传人:无敌 文档编号:884377 上传时间:2018-04-30 格式:DOC 页数:17 大小:1.07MB
下载 相关 举报
微机原理与汇编语言综合实验[实用论文].doc_第1页
第1页 / 共17页
微机原理与汇编语言综合实验[实用论文].doc_第2页
第2页 / 共17页
微机原理与汇编语言综合实验[实用论文].doc_第3页
第3页 / 共17页
微机原理与汇编语言综合实验[实用论文].doc_第4页
第4页 / 共17页
微机原理与汇编语言综合实验[实用论文].doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、微机原理与汇编语言综合实验实 验 报 告|实验名称 微机原理与汇编语言综合实验 课程名称 微机原理与汇编语言程序设计 |(实验报告如打印,纸张用 A4,左装订;页边 距:上下 2.5cm,左 2.9cm, 右2.1cm;字体:宋体小四号,1.25 倍行距。 )验证性、综合性实验报告应含的主要内容:一、实验目的及要求二、所用仪器、 设备三、实验原理四、实验方法与步骤五、实验结果与数据处理六、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进行分析和讨论,对实验的进一步想法或改进意见)七、所附实验输出的结果或数据设计性实验报告应含的主要内容:一、设计要求二、选择的方案三、所用仪器、

2、设备四、实验方法与步骤五、实验结果与数据处理六、结论(依据“ 设计要求”)七、所附实验输出的结果或数据* 封面左侧印痕处装订华 北 电 力 大 学 实 验 报 告第 页 共 页汇编语言与微机原理综合实验汇编语言程序设计部分一、实验目的:学习程序设计的基本方法和技能,熟练掌握用汇编语言设计,编写,运行程序的方法,熟悉 DEBUG 有关命令的使用方法,利用 DEBUG 掌握有关指令的功能;利用DEBUG 运行简单的程序段,为后续课程打下坚实的基础。二、实验要求:1上机前做好充分准备,包括程序框图,源程序清单,调试步骤,测试方法,对运行结果的分析。2实验完成后,认真写出实验报告。3实验一:用表格形式

3、显示 ASC字符按 15 行16 列的表格形式显示 ASC码为 10H100H 的所有字符,即以行为主的顺序及 ASC码递增的次序依次显示对应的字符。每 16 个字符为一行,每行中的相邻两个字符之间用空白符(ASC码为 20H)隔开。4实验二:查找匹配字符串程序接收用户键入的一个关键字以及一个句子。如果句子中不包含关键字则显示No match!;如果句子中包含关键字则显示Match,且把该字在句子中的位置用十六进制数显示出来。学会使用循环结构来完成整个句子和关键字的比较过程,循环次数为(句子长度-关键字长度)+1,在关键字和句子中相应字段比较时,可使用串比较指令。同时,熟悉使用 09H 功能显

4、示查找的信息,以及把二进制数转化为十六进制数并输出的过程。三、所用仪器设备:硬件:普通 PC 机软件:MS.EXE 全屏幕编辑软件MASM.EXE 汇编软件LINK.EXE 链接软件DEBUG.EXE 调试软件四、实验方法与步骤:(1)进入 DOS 操作系统;(2)键入 CMASMMS 进入全屏幕编辑环境;(3)建立源文件.ASM 并保存;(4)返回 DOS 系统;(5)用汇编程序 MASM 对源文件汇编产生目标文件.OBJ;(6)用链接程序 LINK 产生执行文件.EXE;(7)执行程序;(8)进入 DEBUG,练习调试的方法。实验一 用表格形式显示 ASC字符程序思想:1.用显示输出功能调

5、用功能号 02H 显示每个字符Mov ah , 02h华 北 电 力 大 学 实 验 报 告第 页 共 页Mov dl , 输出字符的 ASC码Int 21h把 dl 初始化为 10h,然后不断使其加 1 以取得下一个字符的 ASC码。2显示空格符时,用其 ASC码 20h 置入 dl 寄存器,每行结束时,用显示回车和换行符结束本行并开始下一行。华 北 电 力 大 学 实 验 报 告第 页 共 页3由于逐个显示相继的 ASC码字符时,需要保存并不断修改 dl 寄存器的内容,而显示空格,回车,换行符时也需要使用 dl 寄存器,因此使用堆债来保存。程序流程图: 设置行循环次数 dh15设置列循环次

6、数 ch16设置 ASC码初值 10h用 2 号功能调用显示字符显示空格符ASC码加 1Ch 减 1Ch=0 ?设置 ch16显示回车,换行符Dh 减 1Dh=0?结束YYNN程序源代码:code segmentassume cs:code用表格显示 ASC字符程序保护寄存器原始值华 北 电 力 大 学 实 验 报 告第 页 共 页start: push dssub ax,axpush axmov ch,16mov dh,15mov al,10hhang: push axmov dl,almov ah,2int 21hmov bl,20hmov dl,blmov ah,2int 21hpop

7、axinc aldec chjnz hangmov ch,16push axmov cl,oahmov dl,clmov ah,2int 21hmov cl,0dhmov dl,clmov ah,2int 21hpop axdec dhjnz hangretcode endsend start 程序运行结果: 利用 DEBUG 调试程序:1可先用 u 命令显示程序,以便了解指令地址:华 北 电 力 大 学 实 验 报 告第 页 共 页2利用 g0036 命令将断点设置在 0036 指令之前的指令以前,可以显示 0036 指令指令之前指令执行后,各寄存器的内容,及标志位状态:3可以用 t 命令逐

8、条跟踪程序的执行的情况。4可以用 a 命令以汇编格式进入,修改汇编语句。5g 命令用于运行程序。6q 命令退出 debug。实验二 查找匹配字符串程序思想:1.首先输入关键字和一个句子,分别存入相应的缓冲区中,用 0AH 功能调用。2在句子中查找关键字;关键字和句子中相应字段的比较可使用串比较指令。为此必须定义附加段,但附加段和数据段可定义为同一段,以便于串指令的使用。这样,相应的寄存器内容也有了确定的含义:华 北 电 力 大 学 实 验 报 告第 页 共 页SI 寄存器为关键字的指针DI 寄存器为句子中正相比较的字段的指针CX 寄存器存放关键字的字母个数用循环结构来完成整个句子和关键字的比较

9、过程,循环次数为(句子长度-关键字长度)+1 ;计数循环时,如遇到句子长度小于关键字长度的情况则显示“No match”; 循环中还需要用到 BX 寄存器,它用来保存句子中当前正在比较字段的首地址。3用功能调用 09h 显示找到或未找到的信息。程序流程图:输入关键字及句子并回显 句子长度= 关键字长度?No match结束N设置循环次数cmpsbY相等?match结束YN循环次数0?YNo match结束N句子正相比较字段指针1循环次数减 1查找匹配字符串程序程序源代码:DATAREA SEGMENTSTRING1 DB “ENTER KEYWORD:$“STRING2 DB “ENTER S

10、ENTENCE:$“STRING3 DB “MATCH AT LOCATION:$“STRING4 DB “NO MATCH.“,13,10,“$“STRING5 DB “H OF THE SENTENCE.$“KEYWORD DB 50D,?,51D DUP(?)SENTENCE DB 50D,?,51D DUP(?)华 北 电 力 大 学 实 验 报 告第 页 共 页DATAREA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATAREA,ES:DATAREASTART:PUSH DSSUB AX,AXPUSH AXMOV AX,DATA

11、REAMOV DS,AXMOV ES,AXLEA DX,STRING1MOV AH,09HINT 21HLEA DX,KEYWORDMOV AH,0AHINT 21HMOV AH ,02HMOV DL,0AHINT 21HLEA DX,STRING2MOV AH,09HINT 21HLEA DX,SENTENCEMOV AH,0AHINT 21HMOV AH,02HMOV DL,0AHINT 21HLEA SI,KEYWORD+2 ;关键词LEA DI,SENTENCE+2MOV AX,0MOV AL,SENTENCE+1 ;句子字符个数MOV AH,KEYWORD+1 ;关键词字符个数CMP

12、 AL,AHJL NOSUB AL,AHMOV AH,0MOV CX,AXINC CXCOMPARE:PUSH CXMOV CX,3 CLDREPZ CMPSBJZ MATCHMOV AX,3 SUB AX,CXSUB SI,AX ;关键词回到词首MOV AX,2 SUB AX,CXSUB DI,AXPOP CXLOOP COMPARENO: LEA DX,STRING4MOV AH,09HINT 21HJMP EXITMATCH: POP CXMOV BX,DILEA DX,STRING3MOV AH,09HINT 21HSUB BX,OFFSET SENTENCE+2SUB BX,2 ;首

13、地址所在字符串中的地址CALL CHANGELEA DX,STRING5MOV AH,09HINT 21HEXIT:华 北 电 力 大 学 实 验 报 告第 页 共 页RETMAIN ENDPCHANGE PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXMOV CH,4MOV CL,4ROTATE: ROL BX,CLMOV AL,BLAND AL,0FHADD AL,30HCMP AL,3AHJL PRINTITADD AL,7HPRINTIT:MOV DL,ALMOV AH,2INT 21HDEC CHJNZ ROTATEPOP DXPOP CXPOP BXPOP

14、 AXRETCHANGE ENDPCODE ENDSEND START程序运行结果: 略DEBUG 调试程序方法同上。微机原理实验部分一、实验目的:学习有关 8088/8086 微机原理及接口技术的相关知识,通过实验更加直观,深刻掌握 8088/8086 的中断系统,中断控制器 8259A 和中断服务程序的编写;熟练掌握半导体存储器芯片,以及其与微处理器的连接,扩展;掌握定时计数控制器 8253 的工作原理-定时计数方法。二、实验要求:1存储器扩展及读写实验:设计扩展存储器电路的硬件连接图并编制程序,将字符 AZ 循环存入62256 扩展 RAM 中,然后再检查扩展存储器中的内容。2可编程定时

15、器/计数器实验:利用 8088/86 外接 8253 可编程定时/计数器,实现对外部事物进行计数,且可以设置断点读回计数器的值。38259A 中断实验:用 8088/86 可编程中断控制器,实现对外部中断的响应和处理,要求程序中对每次中断进行计数,并将计数结果用 8255 的 PA 口输出到 LED 显示。三、实验内容方法与步骤:实验一 存储器扩展及读写62256 RAM 只使用了 4KB 的空间,设扩展存储器范围为:0000:8000H0000:8FFFH。其中:A0A14 为地址线,DB0DB7 为数据线,/CS 为存储器的片选,/OE 为存储器的数据输出选通信号,/WE 为数据写入存储器的信号。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报