微机原理实验指导书.doc_第1页
微机原理实验指导书.doc_第2页
微机原理实验指导书.doc_第3页
微机原理实验指导书.doc_第4页
微机原理实验指导书.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一 DEBUG软件的使用、实验目的 1学习DEBUG软件的基本使用方法。 2掌握80888086的寻址方式。 3掌握数据传送、算术运算逻辑运算等类指令的基本操作。二、实验内容与步骤本实验进行前必须保证系统盘上有DEBUGEXE文件。在DOS环境下执行DEBUG命令就在屏幕上显示DEBUG提示符:“-”(短划线)。 D:LLWDEBUG ;以下在字符下加下划线表示键入的内容,代表回车1装载文件(N、L命令)-N EXSE2_3EXE ;程序命名为EXSE2_3EXE-L2反汇编命令(U命令) -U 3显示当前环境和寄存器内容(R命令) -R4以十六进制和ASCII码形式显示内存单元内容(D命令)-D5修改寄存器内容-R cx ;修改完后检查是否已修改6输入数据(可以是指令的机器码或操作数)即修改内存内容(E命令) -E 段地址:偏移地址 ;修改完后检查是否已修改7程序输入汇编命令(A命令) 输入程序应注意以下几点: (1)输入的数字必须是十六进制数,并且不输入H。 (2)分号后面的内容(注释)不要输入。 (3)不输入标号,条件转移指令中的标号用偏移地址代替。 -A;以下用代表回车键,下面加下划线部分代表要键入的内容。(可以是任意程序)。 重新回到DEBUG提示符“-”状态,表示汇编命令已结束。8执行机器指令程序到指定断点(G命令) -G=段地址:偏移地址(起始) 段地址:偏移地址(指定断点)9程序调试练习修改并调试以下程序,使之完成30000H开始的内存单元中存入31个先自然递增然后又自然递减的数据(00H0FH00H)的功能。程序从CS:0100H开始存放。调试完成后程序命名为PCS1.EXE并存盘。 程序如下:;PCS1MOV AX,3000HMOV DS,AXMOV SI,0MOV CL,0FHXOR AX,AXL1:MOV SI,ALINC ALDEC CLJNZ L1MOV CX,10HL2:MOV SI,AL INC SI DEC AL LOOP L2 INT 20H 步骤: (1)用A命令输入程序; (2)用反汇编U命令显示程序及目标码: (3)存盘程序命名为PCSlEXE; (4)用断点执行G命令执行程序到INT 20H指令(不执行INT 20H指令); (5)用D命令检查程序执行后31个数是否已写入存储器3000H:0H中。 -R -D显示如下:? (6)修改程序、调试直到显示结果正确。 三、思考题 1EXE文件程序的第一条可执行指令的IP等于多少? 2在DEBUG环境下显示的程序和数字是什么形式?标号又是什么形式?四、实验报告 1打印PCSlEXE的反汇编文件,并在每条指令后加上注释。 2回答思考题。3打印本次实验中所有DEBUG命令及运行界面。4试述本次实验中你学会的DEBUG命令。实验二 汇编语言程序的建立和运行、实验目的 1熟悉伪指令和汇编运算符,掌握汇编语言程序的编写方法。 2学习汇编语言源程序的编辑、汇编、连接、调试及运行的全过程。二、实验内容及步骤 要建立和运行汇编语言程序,系统盘上应该具有如下文件: EDITCOM(或其他全屏幕编辑软件如WSCOM、EDLINCOM等) 编辑程序 MASMEXE 宏汇编程序 LINKEXE 链接程序 DEBUGEXE 调试程序 1程序编辑。用EDIT或者其他编辑软件编辑书中149页程序源程序并存盘。 2程序汇编 如果被汇编的程序没有语法错误,则屏幕上还给出如下信息: 0 Warning Errors 0 Severe Errors 汇编过程中如果发现有错误,程序员必须重新用编辑软件修改错误后再进行汇编,直至汇编正确通过。需要强调的是汇编过程只能指出源程序中的语法错误,而不能指出算法和逻辑等错误。 3程序链接 汇编过程由源程序产生了二进制的目标文件(OBJ文件),但目标文件用的是浮动地址,它不能直接上机执行,必须用链接程序(LINKEXE)将OBJ文件转换成可执行的EXE文件。4程序调试与运行 有了EXE文件后就可以运行程序了。此时只要打入文件名(不输入扩展名),回车即可。 有的程序中没有将结果显示在CRT屏幕上,因此不能知道程序运行结果,这时必须在DEBUG状态下查看寄存器或内存单元。三、思考题 1用DEBUG软件调试程序(EXE文件形式),不执行任何指令,可以用D命令(-DDS: 0)查看数据段的原始数据吗?为什么? 2汇编语言源程序通过了汇编和链接是否就正确无误了?为什么? 3汇编语言源程序经汇编和链接后产生的是哪一种可执行文件?这种文件中IP的初始值一般是多少?四、实验报告 1填写EXSE3_1ASM程序中分号后的空白,贴在习题本上。 2打印调试通过后的程序清单。 3回答思考题。4以本程序为例说明汇编语言程序的建立和运行的主要步骤。实验三 代码转换实验一、实验目的 1掌握计算机常用代码的软件转换技术。 2进一步熟悉DEBUG软件的使用。 3掌握简单循环程序的编程方法。二、实验内容 代码转换是计算机和IO设备进行信息交换的重要技术之一。各种IO设备所提供和接收的数据编码不尽相同,如图2-1所示。为了处理这些信息,计算机必须将各种不同编码形式的信息转换成别种适当的数据形式。例如,键盘输入的数据均为ASCII码形式存储在内存中,通常要求将其转换成相应的数据格式。一般实现代码转换有两种方法: 1软件法 利用CPU的算术逻辑运算功能,通过运算或查表实现各种数据代码间的转换。该方法经济但速度慢。 2硬件法 利用专用代码转换集成电路进行转换。如74LS47可把BCD码转换为七段代码。这种方法需要硬件费用,但速度快。 本实验要求掌握软件编码转换技术。 计算机常用的代码有二进制、八进制、十六进制、BCD码、ASCII码、七段码等。 (一)ASCII码转换为未组合BCD码设从键盘输入十进制数的ASCII码已存放在起始地址为CS:0150H的单元中,把它转换成未组合BCD码后,再分别存入起始地址为CS:015AH的单元中。若输入的不是十进制数的ASCII码,则相应存放结果单元的内容为“FF”。 提示: 1未组合BCD码是一位十进制数字占一个字节,高半字节为0,低半字节为该十进制数字的BCD码。ASCII码转换为未组合BCD码只需减30H。2程序框图如图所示。 3程序执行前,需要在CS:0150H内存缓冲区写入待转换的ASCII码。方法如下; 方法一:用A命令-A CS:0150 CS:0150 DB 35,39,30,41,32 方法二:用E命令-E CS:0150 CS:0150 35,39,30,41,32 4执行程序后检查执行结果可用D命令:-D CS:015A CS:015A 05,09,00,FF,025.参考程序:;PCS3-1 ORG 0100H MOV CX,0005H MOV DI,150HBB: MOV BL,0FFH MOV AL,DI CMP AL,3AH JNB DONE SUB AL,30H JB DONE MOV BL,ALDONE:MOV AL,BL MOV DI+0AH,AL INC DI LOOP BB MOV AH,4CHINT 21H ORG 0150H DB 35H,39H,30H,41H,32H (二)BCD码转换为二进制码 在各种智能仪器和信息处理中,人们总习惯于用十进制数来表示信息。但是绝大多数计算机没有十进制运算指令(仅有十进制调整指令)。所以常规的方法是将输入的十进制数转换为二进制数后,再进行各种数据处理。 BCD码分为组合BCD码和未组合BCD码。组合BCD码每字节存放两位BCD数,未组合BCD码每字节只存放一位BCD数,高半字节为0。组合BCD码加、减后必须用DAA和DAS指令进行调整(乘法或除法没有调整指令)。未组合BCD码则可进行加、减、乘、除四则运算,其调整指令分别为AAA,AAS,AAM和AAD。 本实验是要把两位未组合BCD码数转换成二进制数。设未组合BCD码以存放在起始地址为CS:0150H的区域,把它们转换为二进制数后,再分别存入起始地址为CS:0165H的区域。例如 ORG 0150H DB 03H,06H,08H,09H,06H,05H,02H,09H则转换后CS:0165H开始的单元的内容为: CS:0165H 24H,00H,59H,00H,41H,00H,1DH,00H 提示:算法是 “十位10 +个位”。其中的10可以用“10=8+2”来实现。程序流程图如图所示。参考程序。;PCS3-2 ORG 0100HSTART:MOV CX,0004H MOV DI,0150HAA: MOV AL,DI ADD AL,AL MOV BL,AL ADD AL,AL ADD AL,ALADD AL,BL INC DI MOV AH,00H ADD AL,DI MOV DI+14H,AX INC DI LOOP AA MOV AH,4CHINT 21H ORG 0150H DB 03H,06H,08H,09H,06H,05H,02H,09H 三、思考题 1本实验中用DEBUG软件输入的程序的起始地址等于多少?最初四个段寄存器的初始化值有何特点? 2DEBUG状态下输入的程序属哪一种可执行文件?它有几个段?这种文件第一条可执行指令必须位于何处? 3画出循环程序结构框图。四、实验报告 1打印程序清单。 2回答思考题。 3总结本实验主要收获。注:将(一)程序改写为标准汇编语言程序格式。 实验四 两个多位十进制数相加一、实验目的 1学习并掌握数据传送指令和算术运算指令的用法。 2熟悉在PC机上建立、汇编、链接和运行8088汇编语言程序的过程。二、实验内容 将两个多位十进制数相加,并在屏幕上显示加数、被加数以及和。已知被加数和加数均以ASCII码形式存放在DATAl和DATA2为首的单元中(低位位于低地址),结果送回DATAl处。三、编程提示 1因被加数和加数均以ASC码形式存放,所以在相加前必须转化为BCD码,此时用组合BCD码最适宜。未组合BCD码相加要用到AAA加法调整指令。 2显示数据可用2号DOS功能调用。 3程序流程图如图所示。四、思考题 如果是减法,程序应如何修改?如果加数、被加数以组合BCD码形式存放在DATAl、DATA2缓冲区,程序应怎样修改?五、实验报告-1 打印程序清单。 2回答思考题。3调试程序中遇到什么问题?怎样解决的?六、参考程序;PCS4ASMCRLF MACR0 MOV DL,0DH MOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HENDMDATA SEGMENTDATAl DB 33H,39H,31H,37H,34HCOUNT EQU$DATA1DATA2 DB 36H,35H,30H,38H,32HDATA ENDSSTACK SEGMENT STACK STACK DB 20 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV SI,OFFSET DATA2 MOV BX,COUNT CALL DISPL CRLF MOV SI,OFFSET DATA1 MOV BX,COUNT CALL DISPL CRLF MOV DI,OFFSET DATA2 CALL ADDA MOV SI,OFFSET DATA1 MOV BX,COUNT CALL DISPL CRLF MOV AX,4C00H INT 21HDISPL PROC NEARDS1: MOV AH,02H MOV DL,SI+BX-1 INT 21H DEC BX JNZ DS1RETDISPL ENDPADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,COUNT AD1:SUB BYTE PTRSI+BX-1,30H SUB BYTE PTR DI+BX-1,30H DEC BX JNZ AD1 MOV SI,DX MOV DI,BP MOV CX,COUNT CLC AD2: MOV AL,SI ADC AL,DI AAA MOV SI,AL INC SI INC DI LOOP AD2 MOV SI,DX MOV DI,BP MOV BX,COUNT AD3:ADD BYTE PTR SI+BX-1,30H ADD BYPE PTR DI+BX-1,30H DEC BX JNZ AD3 RET ADDA ENDP CODE ENDS END START实验五 子程序设计一、实验目的 1通过程序调试,观察子程序调用及嵌套过程,进一步理解CALL指令和RET指令的功能。 2掌握子程序(或过程)调用时参数传递的方法。二、实验内容 (1)调试程序PCS5_1.ASM,使实现函数(a和b均为065535之间的值),并在屏幕上显示y的值(十六进制形式)。 ;PCS5-1.ASM TO BE DEBUGED DATA SEGMENT A DW 125 B DW 90 Y DW 3 DUP(0) Z DW 0,0 DATA ENDS STA SEGMENT STACKSTACK DW 50 DUP(S) STA ENDS CODE SEGMENT ASSUME CS:CDOE,DS:DATA,SS:STA STAR PROC FAR PUSH DS XOR AX,AX PUSH AXMOV AX,DATA MOV DS,AXMOV AX,AMOV Z,AXMOV Z+2,AX CALL MLT MOV AX,B MOV Z,AX MOV Z+2,AX CALL MLT MOV AX,A MOV Z,AX MOV AX,B MOV Z+2,AX CALL MLT ADD Y,AX ADC Y+2,DX ADC Y+4,0 CALL DSP6 RET STAR ENDP MLT PROC MOV AX,Z MOV BX,Z+2 MUL BX ADD Y,AX ADC Y+2,DX ADC Y+4,0 RET MLT ENDP DSP6 PROC LEA SI,Y ADD SI,5 MOV CX,6 L1: MOV AL,BYTE PTRSI CALL DSPAL DEC SI LOOP L1 RET DSP6 ENDP DSPAL PROC PUSH AX PUSH BX PUSH CX PUSH DX MOV BH,AL MOV BL,2 码 MOV CL,4 SHR AL,CL G1: CMP AL,10 JGE G2 OR AL,30H JMP G3 G2: ADD AL,37H G3: MOV DL,AL MOV AH,2 INT 2lH DEC BL JZ G4 MOV AL,BH AND AL,0FH JMP G1G4: POP DX POP CX POP BX POP AX RET DSPAL ENDP CODE ENDS END STAR 程序调试通过后,在DEBUG环境下观察CALL和RET指令执行时堆栈指针的变化及堆栈中压入和弹出的内容。 三、编程提示 1子程序(过程)传递参数的方法,除简单情况利用数据段单元传递外,还有以下三种方法: (1)用寄存器传递,适用于参数个数少的情况。 (2)利用堆栈传递参数,适用于参数较多且子程序有嵌套、递归调用的情况。高级语言的过程(函数)的参数传递很多采用此方法。 (3)用程序存储器中的参数表传递,这个参数表紧跟在调用指令的后面。 2用堆栈传递参数的方法是:在主程序中先把参数压入堆栈然后调用子程序。 3用程序存储器传递参数的方法是在主程序中把要传递的参数直接放在调用指令的后面。传递的参数可以是参数的值(在本例中是乘数的值本身),也可以是参数的地址(在本例中是乘数存放的地址)。 四、思考题 1画出PCS5_1.ASM程序层次结构框图。 2假如MLT是一个远过程,画出第三次执行CALL MLT指令后堆栈中数据存放图。 3怎样利用堆栈传送参数?第三次执行CALL MLTSS指令后,根据D命令所显示的堆栈内容画出堆栈中数据存放图并写出取参数的指令。 4怎样利用程序存储器传送参数的地址?为什么返回主程序前要调整返回地址?怎样调整?五、实验报告 1打印一份程序清单。2 回答思考题。实验六 8255A控制交通信号灯实验 一、实验目的1通过对红、绿、黄LED发光二极管的控制熟练掌握8255A可编程并行接口的编程方法。2学习单板方式下扩展简单I/O接口的方法以及双色灯的使用。3进一步学习微处理器的编程技术。 二、实验设备 1IBMPC机或其兼容机一台(PCXT或具有ISA总线的PCAT以上微机)。 2T598爱迪克实验箱一套。 3万用表一块。 三、实验内容 编写程序控制8255A可编程并行接口芯片,使实验台上的红、绿、黄发光二极管按照十字 路口交通信号灯的燃灭规律发光。当按下任意键则停止运行,返回DOS。 四、实验步骤1设计电路并在实验台上连接线路,如图所示。应连线如下: 将DG1DG4,DR1DR4用导线连至8255的PC0PC7,8255的CS片选接至138译码处的200H插孔。2编写程序,用8255A控制发光二极管,模拟交通信号灯的亮灭规律,按任意键返回DOS。 3运行程序,验证所编程序的正确性。五、编程提示 1要完成本实验,首先必须了解交通信号灯的亮灭规律。设有一个十字路口,1、3为南北方向,2、4为东西方向。 (1)初态为4个红灯全亮,禁止通行。 (2)1、3路口绿灯亮,2、4路口红灯亮。 (3)1、3路口绿灯灭 (4)1、3路口黄灯闪烁。 (5)4个路口红灯全亮。 (6)2、4路口绿灯亮,同时1、3路口红灯亮。 (7)2、4路口绿灯灭。 (8)2、4路口黄灯闪烁。 (9)转向(1)循环执行。2参考程序流程图如图所示。六、思考题 1数据段中开辟PB单元起什么作用? 28255A是否可以不通过驱动器而直接驱动LED发光二极管?为什么?七、实验报告 1画出实验电路。 2打印程序清单。3 回答思考题。实验七 8259A中断控制器实验 一、实验目的 1了解IBMPC系列微机对中断控制器8259A的初始化编程,学会在IBMPC系列微机上使用中断方式的原理和方法。2学习中断服务程序的编写及装载方法。 二、实验设备 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论