微机原理实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验一汇编语言的编译、链接和调试一、实验目的1、学会使用masm对汇编源程序进行编译、链接、调试、运行。2、掌握汇编语言的程序格式。3、巩固所学的汇编语言指令。二、实验环境1、硬件:PC微机2、软件:宏汇编MASM软件三、实验原理1、汇编语言程序的上机与处理过程2、汇编语言的程序格式(1)汇编程序一般由若干段组成,每个段都有一个名字,以SEGMENT作为段的开始,以ENDS作为段的结束,这两者前要冠以相同的名字作为段名。(2)代码段和堆栈段必不可少,数据段和附加段可根据需要设置。堆栈段的SEGMENT之后有关键字STACK。代码段中有伪指令ASSUME告诉汇编程序,在各种指令执行时所要访问的各段寄存器将分别对应哪一段。(3)源程序的每一段是由若干行汇编语句组成,每一行只有一条语句,且不能超过128个字符,但一条语句允许有后续行,最后均以回车结束。(4)整个源程序必须以END语句结束,它通知汇编程序停止汇编。四、实验内容进入DOS环境中相应的目录下。如汇编软件的文件来为:D:\MASM,则对应的操作为(1)选择windows的“开始”→“程序”→“附件”→“命令提示符”(2)在DOS命令提示符下输入如下命令(其中带下划线部分为输入内容)。C:\DocumentsandSettings\newD:D:\CDMASMD:\MASMEDITTEXT.ASM进入编辑程序,在其环境下输入编好的源程序,然后在盘上生成一个扩展名为.asm的文件。程序示例DATASEGMENTDA1DB10H,20H,30H,40HDA2DB0F0H,0B0H,0A0H,90HDA3DB00H,00H,00H,00HDATAENDSSTACK1SEGMENTPARASTACKDB10DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1START:MOVAX,DATAMOVDS,AXMOVAL,[DA1]ADDAL,[DA2]MOV[DA3],ALMOVAL,[DA1+1]ADCAL,[DA2+1]MOV[DA3+1],ALMOVAL,[DA1+2]ADCAL,[DA2+2]MOV[DA3+2],ALMOVAL,[DA1+3]ADCAL,[DA2+3]MOV[DA3+3],ALCODEENDSENDSTART3.用宏汇编程序MASM,将扩展名为.ASM的源程序汇编成目标程序,即生成盘上扩展名为.OBJ的文件。若编过程出现错误,则无法生成目标程序,需要回到编辑程序进行修改,修改后重新汇编直到无错出现。4.用连接程序LINK,将扩展名为.OBJ的目标程序连接装配成可执行文件,即在盘上生成扩展名为.EXE的文件。5.用调试程序DEBUG,调试扩展名为.EXE的文件。1)用-N命令指定要调试程序名称。2)用-L命令调入程序。3)用-U命令反汇编看看是不是刚才写入的程序。4)反复用-T命令单步执行程序,认真观察每一步执行后的寄存器的值和相关存储器单元内容的变化情况。(任意记录连续的3次显示情况)5)执行完相关的程序段后,用-DDS:0000命令观察记录开始的12个字节内容。6)总结该程序实现了什么功能,考虑用循环的方式改写程序调试。五、实验报告要求1、程序说明:说明程序的功能、结构、包括:程序名、功能、算法说明、主要符号,并对所用到的寄存器进行说明。2、调试说明:包括上机调试的情况、上机调试步骤、调试过程中所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。实验二顺序程序、分支程序编程实验一、实验目的:学习掌握顺序程序、分支程序的编写。二、实验内容:编写一个程序,在屏幕上显示:Inputonenumber:然后输入一个数字(0-9)当输入的数大于4,屏幕显示:It’sbig!当输入的数小于等于4,屏幕显示:It’ssmall!当输入的数不是数字,屏幕显示:It’snotnumber!提示:可以将显示内容设置为一个数据段中的三个字符串:程序基本结构框架可为:DATASEGMENTSTRDB‘Inputonenumber:$’STR1DB‘It’sbig!$’STR2DB‘It’ssmall!$’STR3DB‘It’snotnumber!$’DATAENDSSTACK1SEGMENTPARASTACKDB20HDUP(?)STACK1ENDSCODESSEGMENTASSUMECS:CODES,SS:STACK1,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAH,4CHINT21HCODESENDSENDSTART利用DOS功能调用来完成输入数据、屏幕显示字符串来完成。三、实验要求:1、编写好程序,再上机调试。2、记录调试成功通过的源程序。3、画出源程序对应的程序流程图。4、说明程序中用到了哪几个DOS系统功能,分别是什么功能。实验三8259A硬件中断实验一、实验目的1.掌握8088中断系统原理。2.掌握8259A扩展8088系统中断的方法及编程。二、实验内容根据系统提供的电路,掌握8259的工作原理,编程实现外部脉冲使8259产生中断。三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。四、实验说明和电路原理图(1)8259A芯片介绍8259A是专用控制中断优先级而设计的集成电路,可对中断源的优先级排队、识别、及提供中断矢量。单块8259A可编程实现8级中断管理,并可选择优先模式及中断请求方式。另外由多片8259A级联,可构成多达64级的矢量中断系统。本实验用2号中断源IR2,接单次脉冲,中断方式为边沿触发方式。程序每按一次按键产生一次中断,中断服务程序使输出状态反转一次。本实验需要用到CPU模块(F3区)、8259模块(C5区)、八位逻辑电平输出模块(E4)、八位逻辑电平显示模块(B5)。8259电路原理图参见图11-1。五、实验步骤1)系统各跳线器处在初始设置状态。用导线连接单次脉冲低信号到8259模块的INT_2;用导线连接8259模块的CS_8259到CPU模块的200H;用导线对应连接8259模块的INT、INTA到CPU模块的88INTR、88/INTA;扩展输出模块的JD1C接8位LED显示的JD4B;用导线连接扩展输出模块的CS_273到CPU模块的208H。2)启动PC机,打开THGMW-88软件,输入源程序,并编译源程序。编译无误后,下载程序运行。3)手动按单次脉冲,按一次产生一次中断,LED显示状态反转一次。实验程序:把程序补充完整CS8259EQU200HCS273EQU208HCODESEGMENTASSUMECS:CODE,DS:CODESTART:XORAX,AXMOVDS,AXLEAAX,IRQ2MOVDS:28H,AXMOVAX,CSMOVDS:2AH,AXMOVDX,CS8259MOV;ICW1OUTDX,ALINCDXMOV;ICW2:中断号从8开始OUTDX,ALMOV;ICW4:全嵌套方式,86/88系统,自动结束中断OUTDX,ALMOV;OCW1:开放Int-2OUTDX,ALMOVDX,CS8259MOV;OCW2:非特殊EOI结束中断OUTDX,ALSTI;开中断MOVBL,055HHERE:MOVDX,CS273MOVAL,BLOUTDX,ALCALLDELAYJMPHEREIRQ2:CLIMOVAL,BLNOTALMOVBL,ALSTIIRETDelayprocnearpushcxmovcx,01FFFhloop$popcxretDelayendpCODEENDSENDSTART六、实验预习要求学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功