微机原理实验报告.docx_第1页
微机原理实验报告.docx_第2页
微机原理实验报告.docx_第3页
微机原理实验报告.docx_第4页
微机原理实验报告.docx_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

2.1显示程序实验1. 实验目的(1) 掌握在PC机上以十六进制形式显示数据的方法。(2) 掌握部分DOS功能调用使用方法。(3) 熟悉Windows集成操作软件Tdpit的操作环境和操作方法2. 实验设备 PC微机一台、TD-PITD实验系统一套。3.实验步骤和结果 (1)编辑源代码STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTMES DB Press any key to exit!,0AH,0DH,0AH,0DH,$MES1 DB Show 34H as hex:,0AH,0DH,$SD DB 15HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV DX,OFFSET MES MOV AH,09H INT 21H MOV DX,OFFSET MES1 MOV AH,09H INT 21H MOV SI,OFFSET SD MOV AL,DS:SI AND AL,0F0H MOV CL,4 SHR AL,CL CMP AL,0AH JB C2 ADD AL,07HC2:ADD AL,30H MOV DL,AL MOV AH,02H INT 21H MOV AL,DS:SI AND AL,0FH CMP AL,0AH JB C3 ADD AL,07HC3:ADD AL,30H MOV DL,AL MOV AH,02H INT 21HKEY:MOV AH,1 INT 16H JZ KEY MOV AX,4C00H INT 21H CODE ENDSEND START(2)实验结果图所示: 2.2 数据传送实验1 实验目的1. 掌握与数据有关的不同寻址方式。2. 继续熟悉实验操作软件的环境及使用方法。2实验设备PC 微机一台、TD-PITD 实验系统一套。3.实验内容本实验要求将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。参考实验程序如下。实验程序清单(例程文件名:A2.ASM)DDATA SEGMENT ;定义源数据段MSR DB HELLO,WORLD!$LEN EQU $- MSRDDATA ENDSEXDA SEGMENT ;定义附加数据段MSD DB LEN DUP(?)EXDA ENDSMYSTACK SEGMENT STACK ;定义堆栈段DW 20 DUP(?)MYSTACK ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DDATA,ES:EXDASTART:MOV AX,DDATAMOV DS,AX ;装载数据段寄存器MOV AX,EXDAMOV ES,AX ;装载附加数据段寄存器MOV SI,OFFSET MSR ;设置 SIMOV DI,OFFSET MSD ;设置 DIMOV CX,LENNEXT: MOV AL,SI ;开始传输数据MOV ES:DI,ALINC SIINC DIDEC CXJNZ NEXTPUSH ESPOP DS ;将附加段寄存器指向的段值赋给数据段寄存器MOV DX,OFFSET MSDMOV AH,9INT 21HKEY: MOV AH,1 ;判断是否有按键按下?INT 16H ;(为观察运行结果,使程序有控制的退出)JZ KEYMOV AX,4C00H ;结束程序退出INT 21HCODE ENDSEND START将程序主体部分的寄存器间接寻址方式改为相对寻址方式,则如下所示。MOV BX,0MOV CX,LENNEXT: MOV AL,MSRBXMOV ES:MSDBX,ALINC BXLOOP NEXT4实验步骤(1) 编辑源代码将程序源代码编辑完成之后修改文件名为A2.asm保存在目录E:masm5.0MYCODE下。(2) 编译A2.asm文件进入DOS系统打开MASM5.0所在目录,并编译A2.asm文件,直到编译无错误。如图2-2-2所示。(3) 连接A2.obj文件使用LINK命令连接A2.obj文件,生成A2.exe文件。运行A2.exe文件,查看运行结果。如图所示:运行程序后,屏幕显示“HELLO, WORLD!”。说明程序运行正确。下面通过调试查看内存数据来了解数据的传输过程。(4) DEBUG调试输入命令E:masm5.0debug a2.exe 回车可进入调试系统,首先对a2.exe进行反汇编,如图所示:从反汇编的程序上可以看出,原字符串存放的段地址为0,13E5,偏移地址为0x0000,复制字符串的母的地址为0x13E6,偏移地址为0x0000,字符串的长度为0x0D。下面通过内存查看命令源地址和目的地址的数据情况,如图所示:从此图可以直接看出原地址所存放的数据位“HELLO,WORLD!”,目的地址存放的数据全部为0。现将程序运行至13EA:001B处,程序运行到此处时,可完成一个字节的数据传输,查看目的地址的内存数据。如图所示。输入一个字节后可在目的地址的第一个数据位0x48,其ASCII码为H。同时也可观察AX寄存的低8位为0x48.将程序运行至13EA:001D处,此时程序已经跳出了数据传送的循环,数据的传送工作已将完成。查看目的地址的内存数据,如上图所示。2.5 分支程序设计实验1实验目的掌握分支程序的设计方法。2实验设备PC 微机一台、TD-PITD 实验系统一套。3实验内容及说明 程序有顺序、循环、分支和子程序四种结构形式,分支结构的示意图如图 2-5-1 所示。本实验要求参考图 2-5-2 流程,通过求无符号字节序列中的最大值和最小值来反映分支程序的结构形式。 实验可以使用 BH,BL 作为暂存现行的最大值和最小值,且在程序的初始,将 BH 和 BL 初始化为首字节的内容,然后进入循环操作。在循环操作中,依次从字节序列中逐个取出一个字节的内容与 BH,BL 进行比较,若取出的字节内容比 BH 的内容大或比 BL 中的内容小,则修改之。当循环结束操作时,将 BH,BL 分别送屏幕显示。实验程序如下:STACK SEGMENT STACK STACK DW 256 DUP(?)STACK ENDSDATA SEGMENT MSR DB 0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9HDATA ENDSCODE SEGMENT ASSUME SS:STACK,CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV SI,OFFSET MSR MOV CX,7 CMP CX,0H JZ NEXT0 MOV BH,SI MOV BL,SINEXT1: INC SI MOV AL,SI CMP AL,BH JNB NEXT2 CMP AL,BL JNA NEXT3NEXT2: MOV BH,AL JMP NEXT5 NEXT3: MOV BL,ALNEXT5:DEC CX CMP CX,0H JNZ NEXT1NEXT0:RETCODE ENDS END START4实验步骤(1) 运行 Tdpit 集成操作软件,根据实验要求编写程序,在数据段声明 8 个的数据:0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H。(2) 对实验程序进行编译、链接。(3) 使用运行命令运行程序,观察运行结果。3.1 8255 并行接口实验1实验目的1. 学习并掌握 8255 的工作方式及其应用。2. 掌握 8255 典型应用电路的接法。2.实验设备PC 机一台,TD-PITD 实验装置一套。3.实验内容1. 基本输入输出实验。编写程序,使 8255 的 A 口为输出,B 口为输入,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。2. 流水灯显示实验。编写程序,使 8255 的 A 口和 B 口均为输出,数据灯 D7D0 由左向右,每次仅亮一个灯,循环显示,D15D8 与 D7D0 正相反,由右向左,每次仅点亮一个灯,循环显示。4.实验原理并行接口是以数据的字节为单位与 I/O 设备或被控制对象之间传递信息。CPU 和接口之间的数据传送总是并行的,即可以同时传递 8 位、16 位或 32 位等。8255 可编程外围接口芯片是 Intel 公司生产的通用并行 I/O 接口芯片,它具有 A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式 0-基本输入/输出方式、方式 1-选通输入/输出方式、方式 2-双向选通工作方式。8255 的内部结构及引脚如图3-1-1 所示,8255 工作方式控制字和 C 口按位置位/复位控制字格式如图 3-1-2 所示。8255 实验单元电路图如图 3-1-3 所示:5.实验步骤1. 基本输入输出实验本实验使 8255 端口 A 工作在方式 0 并作为输出口,端口 B 工作在方式 0 并作为输入口。用一组开关信号接入端口 B,端口 A 输出线接至一组数据灯上,然后通过对 8255 芯片编程来实现输入输出功能。具体实验步骤如下述:(1)实验接线图如图 3-1-4 所示,按图连接实验线路图。(2)运行 Tdpit 集成操作软件,根据实验内容,编写实验程序,编译、链接。(3)运行程序,改变拨动开关,同时观察 LED 灯的显示,验证程序功能。实验程序清单(T8255-1.ASM)IOY0 EQU 3000H ;片选 IOY0 对应的端口始地址MY8255_A EQU IOY0+00H*2 ;8255 的 A 口地址MY8255_B EQU IOY0+01H*2 ;8255 的 B 口地址MY8255_C EQU IOY0+02H*2 ;8255 的 C 口地址MY8255_MODE EQU IOY0+03H*2 ;8255 的控制寄存器地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX,MY8255_MODE ;初始化 8255 工作方式MOV AL,82H ;工作方式 0,A 口输出,B 口输入OUT DX,ALLOOP1: MOV DX,MY8255_B ;读 B 口IN AL,DXMOV DX,MY8255_A ;写 A 口OUT DX,ALMOV AH,1 ;判断是否有按键按下INT 16HJZ LOOP1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退出INT 21HCODE ENDSEND START2. 流水灯显示实验使 8255 的 A 口和 B 口均为输出,数据灯 D7D0 由左向右,每次仅亮一个灯,循环显示,D15D8 与 D7D0 正相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图 3-1-5 所示。实验步骤如下所述:(1)实验接线图如图 3-1-5 所示,按图连接实验线路图。(2)运行 Tdpit 集成操作软件,根据实验内容,编写实验程序,编译、链接。(3)运行程序,观察 LED 灯的显示,验证程序功能。(4)自己改变流水灯的方式,编写程序。实验程序清单(T8255-2.ASM)IOY0 EQU 3000H ;片选 IOY0 对应的端口始地址MY8255_A EQU IOY0+00H*2 ;8255 的 A 口地址MY8255_B EQU IOY0+01H*2 ;8255 的 B 口地址MY8255_C EQU IOY0+02H*2 ;8255 的 C 口地址MY8255_MODE EQU IOY0+03H*2 ;8255 的控制寄存器地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTLA DB ? ;定义数据变量LB DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,MY8255_MODE ;定义 8255 工作方式MOV AL,80H ;工作方式 0,A 口和 B 口为输出OUT DX,ALMOV DX,MY8255_A ;写 A 口发出的起始数据MOV AL,80HOUT DX,ALMOV LA,ALMOV DX,MY8255_B ;写 B 口发出的起始数据MOV AL,01HOUT DX,ALMOV LB,ALLOOP1: CALL DALLYMOV AL,LA ;将 A 口起始数据右移再写入 A 口ROR AL,1MOV LA,ALMOV DX,MY8255_AOUT DX,ALMOV AL,LB ;将 B 口起始数据左移再写入 B 口ROL AL,1MOV LB,ALMOV DX,MY8255_BOUT DX,ALMOV AH,1 ;判断是否有按键按下INT 16HJZ LOOP1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退

温馨提示

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

评论

0/150

提交评论