汇编实验

更新时间:2024-03-07 22:00:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 系统认识实验

1 实验目的

掌握TD系列微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。 2 实验设备

PC机一台,TD-PITE实验装臵一套。 3 实验内容

编写实验程序,将00H~0FH共16个数写入内存3000H开始的连续16个存储单元中。 4 实验步骤

1). 运行Wmd86软件,进入Wmd86集成开发环境。

2). 根据程序设计使用语言的不同,通过在?设臵?下拉列表来选择需要使用的语言和寄存器类型,这里我们设臵成?汇编语言?和?16位寄存器?,如图1、图2所示。设臵选择后,下次再启动软件,语言环境保持这次的修改不变。本课程选择16位寄存器。

图1 语言环境设置界面

图2寄存器设置界面

3). 语言和寄存器选择后,点击新建或按Ctrl+N组合键来新建一个文档,如图3所示。默认文件名为Wmd861。

图3 新建文件界面

4). 编写实验程序,如图4所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。

图4 程序编辑界面

5). 点击,编译文件,若程序编译无误,则可以继续点击进行链接,链接无误后方可以加载程序。编译、链接后输出如图5所示的输出信息。

图5 编译输出信息界面

6). 连接PC与实验系统的通讯电缆,打开实验系统电源。

7). 编译、链接都正确并且上下位机通讯成功后,就可以下载程序,联机调试了。可以通过端口列表中的?端口测试来检查通讯是否正常。点击下载程序。为编译、链接、下载组合按钮,通过该按钮可以将编译、链接、下载一次完成。下载成功后,在输出区的结果窗中会显示“加载成功!”,表示程序已正确下载。起始运行语句下会有一条绿色的背景。如图6所示。

图6 加载成功显示界面

8). 将输出区切换到调试窗口,使用D0000:3000命令查看内存3000H起始地址的数据,如图7所示。存储器在初始状态时,默认数据为CC。

图7 内存地址单元数据显示

9). 点击按钮运行程序,待程序运行停止后,通过D0000:3000命令来观察程序运行结果。如图8所示。

图8 运行程序后数据变化显示

10). 也可以通过设臵断点,断点显示如图9所示,然后运行程序,当遇到断点时程序会停下来,然后观察数据。可以使用E0000:3000来改变该地址单元的数据,如图10所示,输入11后,按空格键,可以接着输入第二个数,如22,结束输入按,回车键。

图9 断点设臵显示

图10 修改内存单元数据显示界面

5 操作练习

编写程序,将内存3500H单元开始的8个数据复制到3600H单元开始的数据区中。通过调试验证程序功能,使用E命令修改3500H单元开始的数据,运行程序后使用D命令查看3600H单元开始的数据。

实验二 分支程序设计实验

1 实验目的

1). 掌握分支程序的结构。

2). 掌握分支程序的设计、调试方法。 2 实验设备

PC机一台,TD-PITE实验装臵一套。 3 实验内容

设计一数据块间的搬移程序。

设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。 4 实验步骤

1). 编写实验程序,经编译、链接无误后装入系统。 2). 用E命令在以SI为起始地址的单元中填入16个数。 3). 运行程序,待程序运行停止。

4). 通过D命令查看DI为起始地址的单元中的数据是否与SI单元中数据相同。

5). 通过改变SI、DI的值,观察在三种不同的数据块情况下程序的运行情况,并验证程序的功能。

实验三 循环程序设计实验

1 实验目的

1). 加深对循环结构的理解。

2). 掌握循环结构程序设计的方法以及调试方法。 2 实验设备

PC机一台,TD-PITE实验装臵一套。 3 实验内容

1)计算S=1+2×3+3×4+4×5+…+N(N+1),直到N(N+1)项大于200为止。

2)求某数据区内负数的个数 设数据区的第一单元存放区内单元数据的个数,从第二单元开始存放数据,在区内最后一个单元存放结果。为统计数据区内负数的个数,需要逐个判断区内的每一个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得到区内所包含负数的个数。 4 实验步骤

(1)编写实验程序,编译、链接无误后装入系统。 (2)运行程序,待程序运行停止。

(3)运算结果存储在寄存器中,查看结果是否正确。 (4)可以改变条件来验证程序功能是否正确。

实验四

实验五 8259中断控制实验

1 实验目的

1). 掌握8259中断控制器的工作原理。 2). 学习8259的应用编程方法。 3). 掌握8259级联方式的使用方法。 2 实验设备

PC机一台,TD-PITE实验装臵一套。 3 实验内容及步骤

1). 中断控制器8259简介

在Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。从片的INT连接到主片的IR2信号上构成两片8259的级联。 在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。

表4 ICU寄存器列表 寄存器 口地址 ICW1(主) ICW10020H (从) (只写) 00A0H ICW2(主) ICW20021H (从) (只写) 00A1H ICW3(主) (只0021H 写) ICW3(从) (只00A1H 写) ICW4(主) ICW40021H (从) (只写) 00A1H OCW1(主) OCW10021H (从) (读/写) 00A1H OCW2(主) OCW20020H (从) (只写) 00A0H 功能描述 初始化命令字1: 决定中断请求信号为电平触发还是边沿触发。 初始化命令字2: 包含了8259的基址中断向量号,基址中断向量是IR0的向量号,基址加1就是IR1的向量号,依此类推。 初始化命令字3: 用于识别从8259设备连接到主控制器的IR信号,内部的从8259连接到主8259的IR2信号上。 初始化命令字3: 表明内部从控制器级联到主片的IR2信号上。 初始化命令字4: 选择特殊全嵌套或全嵌套模式,使能中断自动结束方式。 操作命令字1: 中断屏蔽操作寄存器,可屏蔽相应的中断信号。 操作命令字2: 改变中断优先级和发送中断结束命令。 OCW3(主) OCW30020H (从) (只写) 00A0H IRR(主) IRR0020H (从) (只读) 00A0H ISR(主) ISR0020H (从) (只读) 00A0H POLL(主) POLL0020H (从) (只读) 0021H 00A0H 00A1H 操作命令字3: 使能特殊屏蔽方式,设臵中断查询方式,允许读出中断请求寄存器和当前中断服务寄存器。 中断请求: 指出挂起的中断请求。 当前中断服务: 指出当前正在被服务的中断请求。 查询状态字: 表明连接到8259上的设备是否需要服务,如果有中断请求,该字表明当前优先级最高的中断请求。 在对8259进行编程时,首先必须进行初始化。一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入初始化命令字。8259有一个状态机控制对寄存器的访问,不正确的初始化顺序会造成异常初始化。

在初始化主片8259时,写入初始化命令字的顺序是:ICW1、ICW2、ICW3、然后是ICW4,初始化从片8259的顺序与初始化主片8259的顺序是相同的。 系统启动时,主片8259已被初始化,且4号中断源(IR4)提供给与PC联机的串口通信使用,其它中断源被屏蔽。中断矢量地址与中断号之间的关系如下表所示: 主片中0 1 2 3 4 5 6 7 断序号 功能调08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 用 矢量地20H~24H~28H~2CH~30H~34H~38H~3CH~址 23H 27H 2BH 2FH 33H 37H 3BH 3FH 说明 未开放 未开放 未开放 未开放 串口 未开放 可用 可用 从片中0 1 2 3 4 5 6 7 断序号 功能调30H 31H 32H 33H 34H 35H 36H 37H 用 矢量地C0H~C4H~C8H~CCH~D0H~D4H~D8H~DCH~址 C3H C7H CBH CFH D3H D7H DBH DFH 说明 未开放 可用 未开放 未开放 未开放 未开放 未开放 未开放 2). 8259单中断实验

系统总线单次脉冲单元MIR7KK1+主8259实验接线图如下图所示,单次脉

冲输出与主片8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符’7’。

图8259单中断实验接线图

3)参考程序: CODE SEGMENT ASSUME CS:CODE START: PUSH DS

MOV AX, 0000H MOV DS, AX

MOV AX, OFFSET MIR7 ;取中断入口地址 MOV SI, 003CH ;中断矢量地址 MOV [SI], AX ;填IRQ7的偏移矢量 MOV AX, CS ;段地址 MOV SI, 003EH

MOV [SI], AX ;填IRQ7的段地址矢量 CLI POP DS

;初始化主片8259 MOV AL, 11H

OUT 20H, AL ;ICW1 MOV AL, 08H

OUT 21H, AL ;ICW2 MOV AL, 04H

OUT 21H, AL ;ICW3 MOV AL, 01H

OUT 21H, AL ;ICW4 MOV AL, 6FH ;OCW1 OUT 21H, AL STI

AA1: NOP

JMP AA1 MIR7: STI

CALL DELAY MOV AX, 0137H

INT 10H ;显示字符7 MOV AX, 0120H INT 10H MOV AL, 20H

OUT 20H, AL ;中断结束命令 IRET

DELAY: PUSH CX

MOV CX, 0F00H AA0: PUSH AX

POP AX LOOP AA0 POP CX RET CODE ENDS END START 4实验步骤

(1)按图连接实验线路。

(2)编写实验程序,经编译、链接无误后装入系统。

(3)运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符说明响应了中断。

7’,‘实验六 8255 并行接口实验

1 实验目的

1). 学习并掌握8255的工作方式及其应用。 2). 掌握8255典型应用电路的接法。

3). 掌握程序固化及脱机运行程序的方法。 2 实验设备

PC机一台,TD-PITE实验装置一套。 3 实验内容

1). 基本输入输出实验。编写程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。

2). 流水灯显示实验。编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。 4 实验原理

8255内部结构及外部引脚

并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图4.31所示,8255工作方式控制字和C口按位臵位/复位控制字格式如

图所示。

8255控制字8255实验单元电路图如图所示:

5 实验步骤

1). 基本输入输出实验 本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。具体实验步骤如下述:

(1)实验接线图如下图所示,按图连接实验线路图。

DW 32 DUP(?) SSTACK ENDS CODE SEGMENT

ASSUME CS:CODE, SS:SSTACK START: PUSH DS MOV AX, 0000H MOV DS, AX

MOV AX, OFFSET IRQ7 ;取中断入口地址 MOV SI, 003CH ;中断矢量地址 MOV [SI], AX ;填IRQ7的偏移矢量 MOV AX, CS ;段地址 MOV SI, 003EH

MOV [SI], AX ;填IRQ7的段地址矢量 CLI

POP DS ;初始化主片8259 MOV AL, 11H

OUT 20H, AL ;ICW1 MOV AL, 08H

OUT 21H, AL ;ICW2 MOV AL, 04H

OUT 21H, AL ;ICW3 MOV AL, 01H

OUT 21H, AL ;ICW4 MOV AL, 6FH ;OCW1 OUT 21H, AL ;8254 MOV DX, CON8254

MOV AL, 10H ;计数器0,方式0 OUT DX, AL MOV DX, A8254 MOV AL, 04H OUT DX, AL STI

AA1: JMP AA1

IRQ7: MOV DX, A8254 MOV AL, 04H

OUT DX, AL MOV AX, 014DH

INT 10H ;显示字符M MOV AX, 0120H INT 10H

MOV AL, 20H

OUT 20H, AL ;中断结束命令 IRET CODE ENDS END START

本文来源:https://www.bwwdw.com/article/kvga.html

Top