1、汇编实验报告电子科技大学 计算机科学与工程 学院标 准 实 验 报 告(实验)课程名称 微型计算机原理与接口技术 电子科技大学教务处制表电 子 科 技 大 学实 验 报 告学生姓名:邓文熙 学 号:2013060109022 指导教师:徐行实验地点: A2-413-1 实验时间:2016.5.22一、实验室名称: A2-413-1 二、实验项目名称:汇编语言编程训练三、实验学时:4四、实验原理:(包括知识点,电路图,流程图)五、实验目的:理解汇编语言生成可执行程序的过程掌握MASM汇编工具的基本使用方法掌握DEBUG调试工具的基本使用方法实现具备简单功能的汇编程序:顺序、分支、循环、子程序等的
2、设计 六、实验内容:(介绍自己所选的实验内容)2、无符号数排序数据段的ARY数组中存放有10个无符号数,试找出其中最大者送入MAX单元。(用LOOP指令做循环)七、实验器材(设备、元器件):MASM汇编工具,DEBUG调试工具八、实验步骤:(编辑调试的过程)步骤1 建立汇编源程序(*.asm) 步骤2:汇编步骤3:连接步骤4:运行及调试九、实验数据及结果分析:(实验运行结果介绍或者截图,对不同的结果进行分析) 使用debug调试命令后得到的程序运行结果,可以通过追踪命令来显示程序的每一步的执行过程部分程序源代码:DATA SEGMENT ARY DB 17,5,40,0,67,12,34,78
3、,32,10 MAX DB ?DATA ENDSSTACK1 SEGMENT PARA STACK DW 20H DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1BEGIN: MOV AX,DATA MOV DS,AX MOV SI,OFFSET ARY MOV CX,9 MOV AL,SILOP: INC SI CMP AL,SI JAE BIGER MOV AL,SIBIGER: DEC CX JNZ LOP MOV MAX,AL MOV AH,4CH INT 21HCODE ENDS END BEGIN十、实验结
4、论:(联系理论知识进行说明) 成功实现了要求实验内容中取最大值的方法,并且能通过T,G,D等调试命令详细追踪到每一步程序的实现,能够让我们更加充分的了解汇编程序是怎样工作的。十一、总结及心得体会: 通过本次实验我成功学习并掌握了简单的汇编程序的编译方法以及它的调试方法,可以更加清晰地了解到汇编程序的运行过程。 十二、对本实验过程及方法、手段的改进建议: 可以让我们尝试更多的汇编程序设计方法。 报告评分: 指导教师签字:电子科技大学教务处制表电 子 科 技 大 学实 验 报 告学生姓名:邓文熙 学 号:2013060109022 指导教师:徐行实验地点: A2-411 实验时间:2016.5.2
5、6一、实验室名称: A2-411 二、实验项目名称:8259中断控制器实验三、实验学时:4四、实验原理:(包括知识点,电路图,流程图)1.8259A的工作过程中断源在中断请求输入端IR0-IR7上产生中断请求涉及问题:中断请求的触发方式有哪些?中断请求被锁存在IRR中,并经IMR屏蔽,结果送优先权电路判优涉及问题:IRR/IMR的数据是自动写入还是通过软件编程设定?优先权电路检出优先权最高的中断请求位,设置ISR的对应位(置1)涉及问题:中断判优的依据是什么?ISR是自动写入还是通过软件编程设定?8259A控制逻辑接受中断请求,向CPU输出INT信号CPU接受INT信号,进入两个INTA中断响
6、应周期,第一个周期通知8259A做好响应准备,第二个周期8259A将响应的中断类型号输出到DB上涉及问题:CPU中断响应过程中的“配套操作”有哪些?CPU读取该中断类型号,转移到相应的中断处理程序涉及问题:如何通过中断类型号找到中断处理程序?(后面详解)2、8259A的命令字 ICW1/OCW2/OCW3复用同一个地址(A0=0);剩下的命令字复用另一个地址(A0=1),在本系统中,复用地址分别是0FFE0H和0FFE1H,预置数类别顺序为先初始化命令字,再操作命令字,预置数设定顺序为下标顺序。0FFE0H用于ICW1,OCW2和OCW3,0FFE1H用于ICW2,ICW3,ICW4和OCW1
7、。本次实验中,ICW3、OCW3不需要进行设定。本实验只需要用一片8259A进行中断控制,中断源采用单脉冲信号,中断触发方式属于边沿触发,且8086/8088系统必须设定ICW4,因此ICW1=00010011B=13H本系统中,设定使用中断类型8来服务IR7边沿触发产生的中断,所以ICW2=00001000B=08H(详细说明见第5页PPT)对于单片8259A,不需要设定ICW3,而8086/8088系统需要确定ICW4。因此跳过ICW3的设定直接设定ICW4。在该实验中,我们使用全嵌套方式(最常用的也是默认的工作方式,只开放比当前中断优先级高的中断,且中断优先权的级别固定,按照IR0-IR
8、7逐级次之。)和普通EOI方式(一般的中断结束方式,在中断程序返回前,输出中断结束命令把ISR当前优先级最高的对应位清零)操作,因此ICW4=00001001B=09H(详细说明见第6页PPT)对于OCW,假设使用OCW1来屏蔽除IR7外其它所有中断,这样OCW1=01111111B=7FH;选用普通EOI,则OCW2=00100000=20H(详细说明见第7页PPT),流程图如下3、实验参考电路及接线说明(8259部分)SP插孔和8259A的IR7插孔相连(实验中可以选择任意一个或多个中断源)连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与位于地址线
9、A0引出孔所在位置下方的使能控制输出端G作对应连接。8259的CS端连138译码器的Y0孔。将8259的单元总线接口D0-D7,用8芯排线或8芯扁平线与数据总线单元D0-D7任一接口相连。 五、实验目的:理解中断技术的基本原理掌握8259中断控制器的基本原理学会编写中断服务程序掌握Dias实验箱及仿真软件的使用方法六、实验内容:(介绍自己所选的实验内容) 编制程序,利用8259芯片的IRi作为中断源,产生多级中断,系统显示中断号,比如:IR7作为中断源则显示7。七、实验器材(设备、元器件):Dias实验箱及仿真软件八、实验步骤:(编辑调试的过程)步骤1 依照电路图链接线路 步骤2:编写主程序步
10、骤3:8259初始化编程步骤4:确定中断类型号和中断向量表9、实验数据及结果分析:(实验运行结果介绍或者截图,对不同的结果进行分析)图为实现了多级中断后,led数码管的变化情况。源代码:CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3400HH8: JMP P8259ZXK EQU 0FFDCHZWK EQU 0FFDDHLED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3HBUF DB ?,?,?,?
11、,?,?Port0 EQU 0FFE0HPort1 EQU 0FFE1HP8259: CLI CALL WP ;初始化显示“P.” MOV AX,OFFSET INT8259 MOV BX,003CH MOV BX,AX MOV BX,003EH MOV AX,0000H MOV BX,AX MOV AX,OFFSET INT8359 ; MOV BX,0034H MOV BX,AX ;增加一个新的IR5内容 MOV BX,0036H MOV AX,0000H MOV BX,AX CALL FOR8259 mov si,0000h STICON8: CALL DIS JMP CON8;-INT
12、8259:cli MOV BX,OFFSET BUF MOV BYTE PTR BX+SI,07H INC SI CMP SI,0007H JZ X59XX59: MOV AL,20H MOV DX,Port0 OUT DX,AL mov cx,0050hxxx59: push cx call dis pop cx loop xxx59 pop cx mov cx,offset CON8 push cx STI IRETX59: MOV SI,0000H CALL WP JMP XX59;=INT8359:cli MOV BX,OFFSET BUF MOV BYTE PTR BX+SI,05H
13、 INC SI CMP SI,0007H JZ Y59YY59: MOV AL,20H MOV DX,Port0 OUT DX,AL mov cx,0050hYYY59: push cx call dis pop cx loop YYY59 pop cx mov cx,offset CON8 push cx STI IRETY59: MOV SI,0000H CALL WP JMP YY59;=FOR8259:MOV AL,13H MOV DX,Port0 OUT DX,AL MOV AL,08H MOV DX,Port1 OUT DX,AL MOV AL,09H OUT DX,AL MOV
14、AL,5FH ;IRQ7 ; OUT DX,AL RET ;-WP: MOV BUF,08H ;初始化显示“P.” MOV BUF+1,10H MOV BUF+2,10H MOV BUF+3,10H MOV BUF+4,10H MOV BUF+5,10H RET;-DIS: MOV CL,20H MOV BX,OFFSET BUFDIS1: MOV AL,BX PUSH BX MOV BX,OFFSET LED XLAT POP BX MOV DX,ZXK OUT DX,AL MOV AL,CL MOV DX,ZWK OUT DX,AL PUSH CX MOV CX,0100HDELAY: L
15、OOP $ POP CX CMP CL,01H JZ EXIT INC BX SHR CL,1 JMP DIS1EXIT: MOV AL,00H MOV DX,ZWK OUT DX,AL RET;-CODE ENDS END H8十、实验结论:(联系理论知识进行说明) 成功实现了要求实验内容中8259的单级中断和多级中断的实现,成功通过LED灯显示了中断程序的相关过程,实现了8259的中断过程。十一、总结及心得体会: 通过本次实验我成功学习并掌握了简单的8259中单级中断和多级中断的编译方法,更加充分的认识到了8259中断控制器的使用方法。 十二、对本实验过程及方法、手段的改进建议: 可以让我
16、们尝试更多的关于8259中断程序设计方法。 报告评分: 指导教师签字:电子科技大学教务处制表电 子 科 技 大 学实 验 报 告学生姓名:邓文熙 学 号:2013060109022 指导教师:徐行实验地点: A2-411 实验时间:2016.6.1一、实验室名称: A2-411 二、实验项目名称:8253时钟中断计时实验三、实验学时:4四、实验原理:(包括知识点,电路图,流程图)1、8253基本功能具有三个相互独立的16位计数器通道每个通道都可设定以6种工作方式之一进行计数/定时每个计数器都可设为按二进制或BCD码计数 具有计数和定时功能,基于减1计数工作定时器减为0后,可自动装入定时常数初值
17、,并产生输出信号在减1操作中,任何时刻计数器的值都可由CPU经计数输出寄存器读取2、8253工作方式与功能 方式0:计数结束产生中断输出(软件控制)方式1:重复触发的单稳输出(硬件控制)方式2:分频器(软件控制)方式3:方波发生器(软件控制)方式4:选通信号发生器(软件触发)方式5:选通信号发生器(硬件触发)软件控制:程序写入控制字和初值后就可计数硬件控制:写入控制字和初值后,由GATE信号启动计数。 3、有关8253芯片8253基本工作方式就是对CLK时钟脉冲进行计数。CLK脉冲可以是均匀的、连续的、周期精确的,也可以是不均匀的、断续的、周期不定的。无论8253工作于何种方式,当计数器减1到
18、0时,在OUT引脚上必定有电平或脉冲输出,OUT引脚输出的信号可以是方波、电平或脉冲等,由工作方式决定。8253每个计数器都可以选择6种工作方式之一进行工作。在控制字中进行设定。二进制方式计数的最小值是0001H,最大值为0000H,即216=65536二-十进制(BCD码)计数的最小值是0001H,最大值为0000H,即104=10000五、实验目的:回顾8259中断控制器芯片的使用方法掌握8253可编程计数/定时器芯片的原理结合使用8253、8259芯片,联合设计实现时钟中断计时实验六、实验内容:(介绍自己所选的实验内容)1.利用8253的多个通道产生周期为1s的方波信号(方式3),该信号
19、作为8259芯片的中断源,用边沿触发方式产生中断(单级中断),在七段数码管上显示发生中断的次数,构成一个“秒表”(显示范围为0-9)。七、实验器材(设备、元器件):Dias实验箱及仿真软件8、实验步骤:(编辑调试的过程)步骤1:链接电路图步骤2:主程序、中断程序功能的设计步骤3:8253、8259芯片控制字,初始化顺序步骤4:时序控制9、实验数据及结果分析:(实验运行结果介绍或者截图,对不同的结果进行分析)图为实现中断秒表计数器。部分程序源代码:CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3400HH8: JMP P8259ZXK EQU 0
20、FFDCHZWK EQU 0FFDDHLED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3HBUF DB ?,?,?,?,?,?COUNT DB 0TIME DB 0Port0 EQU 0FFE0HPort1 EQU 0FFE1HPort8253_0 EQU 0FFE0HPort8253_1 EQU 0FFE1HPort8253_2 EQU 0FFE2HPort8253_3 EQU 0FFE3HP8259: CLI CALL WP ;初始化显示“00”
21、 ;设置中断服务 MOV AX,OFFSET INT8259 MOV BX,003CH MOV BX,AX MOV BX,003EH MOV AX,0000H MOV BX,AX ;初始化 CALL SETTING8253 CALL SETTING8259 mov si,0000h STICON8: CALL DIS JMP CON8;-INIT8259-INT8259: CLI XOR COUNT,1 JZ X59XX59: MOV AL,20H MOV DX,Port0 OUT DX,AL POP CX MOV CX,OFFSET CON8 PUSH CX STI IRETX59: INC
22、 TIME CMP TIME,0AH;10 JZ RESETX59DIS:MOV CL,TIME MOV BUF,CL CALL DIS JMP XX59RESET: MOV TIME,0;TIME=0 JMP X59DIS;=设置8259=SETTING8259: MOV AL,13H MOV DX,Port0 OUT DX,AL MOV AL,08H MOV DX,Port1 OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,7FH ;IRQ7 OUT DX,AL RET;-数码管初始显示 00xxxx-WP: MOV BUF,00H MOV BUF+1,10H
23、MOV BUF+2,10H MOV BUF+3,10H MOV BUF+4,10H MOV BUF+5,10H RET;-数码管显示-DIS: MOV CL,20H MOV BX,OFFSET BUFDIS1: MOV AL,BX PUSH BX MOV BX,OFFSET LED XLAT POP BX MOV DX,ZXK OUT DX,AL MOV AL,CL MOV DX,ZWK OUT DX,AL PUSH CX MOV CX,0100HDELAY: LOOP $ POP CX CMP CL,01H JZ EXIT INC BX SHR CL,1 JMP DIS1EXIT: MOV
24、AL,00H MOV DX,ZWK OUT DX,AL RET;=设置8253=SETTING8253: MOV DX,Port8253_3 MOV AL, 036H;控制字,10 计数器2,11 先写低8位,在写高8位,011 方式3,1 二进制计数 MOV DX,Port8253_0 MOV AL,00;低8位 OUT DX, AL; MOV AL,96H;高8位 OUT DX,AL; RET;-CODE ENDS END H8十、实验结论:(联系理论知识进行说明) 成功实现了要求实验内容中使用8253和8259中断控制器实现了LED秒表计数的方法。十一、总结及心得体会: 通过本次实验我成
25、功学习并掌握了简单的8253和8259中断控制的编译方法以及它的调试方法。十二、对本实验过程及方法、手段的改进建议: 可以让我们尝试更多的8253汇编程序设计方法。 报告评分: 指导教师签字:电子科技大学教务处制表电 子 科 技 大 学实 验 报 告学生姓名:邓文熙 学 号:2013060109022 指导教师:徐行实验地点: A2-411 实验时间:2016.6.8一、实验室名称: A2-411 二、实验项目名称:8255A并行可编程接口芯片实验三、实验学时:4四、实验原理:(包括知识点,电路图,流程图)8255的工作方式 方式0基本输入/输出方式,不用联络信号,不用中断。A组和B组都可以作
26、为输入/输出,而且输出是锁存的.方式1选通输入输出方式,与方式0相比,它的主要特点是当A口、B口工作于方式1时,C口的某些I/O线被定义为A口和B口在方式1下工作时所需的联络信号线,这些线已经定义,不能由用户改变。 A口工作于方式1输出时,用PC3,PC6和PC7作联络线。C口剩余的两个I/O线PC4和PC5工作于方式0。该方式下输入输出均带锁存器。实验题目1-实验箱参考连线PC1的状态获取:IN AL,DX;DX是PC口的地址TEST AL,02H;TEST做AND操作,但是不修改AL的值JZ JUMP;PC1=0跳转,PC1=1顺序执行五、实验目的:掌握8255并行可编程芯片的使用和编译方
27、法。六、实验内容:(介绍自己所选的实验内容)1.检测8255的PC1连接开关信号的控制位,当开关为高电平时,PA口和PB口连接的12只发光二极管按照二进制顺序加1的方式点亮(亮灯表示1,不亮表示0)。A口和B口工作在方式0。七、实验器材(设备、元器件):Dias实验箱及仿真软件八、实验步骤:(编辑调试的过程)步骤1 按图连接好电路图 步骤2:设置A口输入,B口输出步骤3:循环,改变B口输出步骤4:运行及调试9、实验数据及结果分析:(实验运行结果介绍或者截图,对不同的结果进行分析)如图所示,成功实现12只发光二极管按二进制加1的方式顺序点亮。源代码:CODE SEGMENT ASSUME CS:
28、CODE,DS:CODE,ES:CODE ORG 32F0HPA EQU 0FFD8HPB EQU 0FFD9HPC EQU 0FFDAHPCTL EQU 0FFDBHH3: MOV AL,89H MOV DX,PCTL OUT DX,AL ;MOD:0, MOV BX,0FFFH MOV DX,PCJUMP: IN AL,DX TEST AL,02H JZ JUMP DEC BX MOV DX,PA MOV AL,BL OUT DX,AL INC DX MOV AL,BH OUT DX,AL CALL DELAY1 MOV DX,PCJUMP2: IN AL,DX TEST AL,02H JZ JUMP2 JMP JUMPDELAY1: PUSH AX PUSH CX MOV CX,0010HDELY2: CALL DELAY2 LOOP DELY2 POP CX POP AX RETDELAY2: PUSH CX MOV CX,1000H LOOP $ POP CX RET
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1