当前位置:文档之家› 实验指导书

实验指导书

实验指导书
实验指导书

实验一系统认识实验

一、实验目的

掌握TDN86/51教学系统的基本操作

二、实验设备

TDN86/51教学实验系统一台

三、实验内容及步骤

1.系统认识实验(1)

(1)程序的输入与修改

从3500H内存单元开始建立0-15共16个数据。

实验步骤

a.使用串行通讯电缆将实验系统与PC微机相连。

b.将位于线路板右下角的系统状态选择开关拨至86档,开启实验系统。

c.在系统软件所在目录下键入MD86↙,选择对应串口号,进入集成操作软件环境,出现

系统提示符“>”。按下F1功能键,进入全屏幕编辑界面,按ALT+F建立新文件(NEW),即可开始输入源程序。实验程序及流程如下:

STACK SEGMENT STACK ;8088宏汇编程序

DW 64 DUP() ;定义堆栈段

STACK ENDS

CODE SEGMENT ;定义代码段

ASSUME CS:CODE

START: MOV DI,3500H ;程序开始设数据区首址

MOV CX,0010H ;字节数送入CX中

MOV AX,0000H

SAHF

A1: MOV [DI],AL ;写入一字节

INC DI ;修改地址指针

INC AX ;修改数据

DAA ;十进制调整

LOOP A1 ;未填完转移

A2: JMP A2

CODE ENDS ;代码段结束

END START ;程序段结束

d.输入程序后,按F2保存程序(规定扩展名为*.asm),使用ALT+X返回集成软件环境。

e.按F2,输入源程序名↙(省略扩展名,系统默认为.asm),对源程序进行汇编,生成目

标文件(*.obj)及错误信息文件(*.m)。若给出LST文件名则生成相应*.lst文件。

f.汇编无误后,按F3输入文件名↙对汇编生成的*.obj文件进行连接,连接信息显示于

屏幕上,生成相应*.exe可执行文件。

g.按F5,输入*.exe可执行文件名↙,填入程序段地址CS:0000↙及偏移地址IP:2000

↙,PC开始将程序从磁盘装入到教学系统内存,提示装载完毕后使用U0000:2000↙命

h.当发现源程序输入错误或需要调整时,在调试界面下可用A命令来修改,如修改2000

句为

(2)运行程序

系统提供了单步运行、设断点运行、连续运行等方式,具体操作如下:

a.单步运行:其操作如下表,每运行一条指令后会显示下一条待执行指令并以蓝底白字显

示变化寄存器的内容,重复T↙(或按F4键)就可一步一步地运行,直至程序结束。

b.连续运行:在“>”提示符下键入G=0000:2000↙(在系统默认段地址CS=0000情况下

也可直接键入G=2000↙)可连续运行程序,在运行过程中,可通过CTRL+C终止程序运行,返回监控状态;也可通过CTRL+S暂停程序运行,按任意键继续。

c.

上例中定义了2009地址为断点,每次键入GB=0000:2000↙程序连续运行至断点时,程序中断并显示当前各寄存器内容。GB是G命令的扩充,表示含断点连续运行程序,断点仅当系统复位时清除。

(3)内存单元内容的显示:

使用D=0000:3500↙可查看3500H-350FH单元中的内容是否为0-15共16个数。

(4)内存单元内容的修改:

若要修改某一单元内容,可进行如下操作,其中,“空格”键用于向待编辑单元的高地

E命令。

2.系统操作练习(2)

将内存3500H单元开始的0-15共16个数据传递到3600H单元开始的数据区中。实验程序及流程如下:

STACK SEGMENT STACK

DW 64 DUP()

CODE SEGMENT

ASSUME CS:CODE

START: MOV SI,3500H ;建立源地址指针

MOV DI,3600H ;建立目标地址指针

MOV CX,0008H ;字数送入CX寄存器中

A1: MOV AX,[SI] ;取源数据一字送入AX中

MOV [DI],AX ;将源数据送入目标地址单元中

INC SI ;修正指针

INC SI

INC DI

INC DI

DEC CX ;修改循环次数

JNZ A1 ;判断是否传送完毕

A2: JMP A2

CODE ENDS ;代码段结束

END START ;程序段结束

实验步骤

(1)输入程序并检查无误,经汇编、连接后装入系统。

(2)E3500↙,在3500-350F单元中分别送入00、01、02…。

(3)G=0000:2000↙,运行以上程序,按CTRL+C中断,返回监控。

(4)D3600↙,显示结果:3600 00 01 02 …。

实验二数码转换编程及程序调试

一、实验目的

1.掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解。

2.熟悉键盘使用方法。

3.熟悉调试程序的方法

二、实验设备

TDN86/51教学实验系统一台

三、实验内容及步骤

计算机输入设备输入的信息一般是由ASCII 码或BCD 码表示的数据或字符,CPU 一般均用二进制进行计算或其他信息处理,处理结果的输出又必须依照外设的要求变为ASCII 码、BCD 码或七段显示码等。因此,在应用软件中,各类数制的转换和代码的转换是必不可少的。

计算机与外设间的数码转换关系如图2-1所示,数码对应关系如表2-1所示。

1. 将ASCII 码表示的十进制数转换为二进制数

十进制表示为:

∑=--?=?++?+?n

i i i n n n n D D D D 0

01

1101010

10 ┅┅┅┅┅┅┅┅┅(1)

Di 代表十进制数1,2,3,┅9,0; 上式转换为:

图2-1 数码转换关系 二进制

0110

10)10)10((((10

D D D D D n n

i n i

i

+?++?+?=?-=∑ ┅┅┅┅┅┅┅┅┅(2)

由式(2)可归纳十进制数转换为二进制数的方法:从十进制数的最高位Dn 开始作乘

10加次位的操作,依次类推,则可求出二进制数的结果。程序流程及参考程序如下:(规定:被转换的ASCII 码十进制数存放在3500H-3504H 单元中,转换结果存在于3510H-3511H 单元中。)

STACK SEGMENT STACK DW 64 DUP() STACK ENDS

CODE SEGMENT

ASSUME CS:CODE START: MOV SI,3500H MOV DI,3510H

MOV BX,000AH

MOV CX,0004H MOV AH,00H MOV AL,[SI] SUB AL,30H

A1: IMUL BX

ADD AL,[SI+01] SUB AL,30H INC SI LOOP A1 MOV [DI],AX A2: JMP A2 CODE ENDS

END START

实验步骤

(1) 输入程序并检查无误,经汇编、连接后装入系统。 (2) 在3500-3504H 单元存入十进制数12的ASCII 码,即E3500↙,并输入30 30 30

31 32。

(3) G=0000:2000↙,运行以上程序,并用CTRL+C 来中断程序,返回监控状态。 (4) 用D3510↙查看结果,应为:3510 0C 00。 (5) 反复试几组数,考察程序的正确性。 2. 将十进制数的ASCII 码转换为BCD 码

设从键盘输入的五位十进制数的ASCII 码已存放在3500H 起始的内存单元内,把它转换为BCD 码后,再按位分别存入350AH 起始的内存单元内。若输入的不是十进制数的ASCII 码,则对应存放结果的单元内容为“FF ”。由表2-1可知,一字节ASCII 码取其低四位即变为BCD 码。实验程序及流程如下:

STACK SEGMENT STACK

DW 64 DUP()

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE

START: MOV CX,0005H ;循环计数器赋初值

MOV DI,3500H ;ASCII码首地址

A1: MOV BL,0FFH ;将错误标志送入BL

MOV AL,[DI] ;送ASCII码至AL

CMP AL,3AH ;比较AL与3AH

JNB A2 ;不低于3AH则转A2

SUB AL,30H ;低于3AH则取ASCII码低4位

JB A2 ;低于30H则转A2

MOV BL,AL ;否则AL内容送入BL,取代FFH

A2: MOV AL,BL ;结果或错误标志送入AL

MOV [DI+0AH],AL

INC DI

LOOP A1

A3: JMP A3

CODE ENDS

END START

实验步骤

(1)输入程序并检查无误,经汇编,连接后装入系统。

(2)在3500-3504H单元中存放五位十进制数的ASCII码,即:E3500↙,并输入31 32 33

34 35。

(3)G=0000:2000↙,运行以上程序。

(4)用D3510↙查看结果,显示结果应为:

0000:350A 00 01 02 03 04 05 CC …

(5)反复试几组数,考察程序的正确性。

四.思考题

程序2将一个五位十进制数转换为二进制数(十六位)时,这个十进制数最小可为多少,最大可为多少为什么

实验三运算类编程实验

一、实验目的

1.掌握使用运算类指令编程及调试方法。

2.掌握运算类指令对各状态标志位的影响及其测试方法。

二、实验设备

TDN86/51教学实验系统一台

三、实验内容及步骤

8086/8088指令系统提供了实现加、减、乘、除运算的基本指令,可对表3-1所示的数

00

04 02 01 … X

3500 3501 3502 3503 3510 3511

地址

存储器 Z Y 据类型进行算术运算。

1.十进制数的BCD 码减法运算

计算下X-Y=Z ,其中,X 、Y 、Z 均为BCD 码。 实验程序及流程如下: STACK SEGMENT STACK DW 64 DUP() STACK ENDS

DATA SEGMENT

X DW ;请在此处给X 赋值 Y DW ;请在此处给X 赋值 Z DW

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA MOV DS,AX MOV AH,00H SAHF

MOV CX,0002H MOV SI,OFFSET X MOV DI,OFFSET Z A1: MOV AL,[SI] SBB AL,[SI+02H] DAS PUSHF

AND AL,0FH

POPF MOV [DI],AL INC DI INC SI LOOP A1 A2: JMP A2 CODE ENDS END START

实验步骤

(1) 输入实验程序并检查无误,经汇编,连接后装入系统。(设CS:0000H ,IP :2000H ) (2) 用U0000:2000查看MOV AX,XXXX(DATA)语句,即得到数据段段地址DS:XXXX 。用E

命令EXXXX:0000↙给X ,Y 赋值存入40和12的BCD 码:00 04 02 01。

(3) G=0000:2000↙,运行以上程序。

(4) DXXXX:0004↙,显示计算结果:08 02 CC …。 (5) 反复试几组数,考察程序的正确性。 四、思考题

编写两个数值长度不等的BCD 码相加的程序。

实验四 分支程序设计实验

一、实验目的

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

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

TDN86/51教学实验系统一台 三、实验内容及步骤

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

设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。源数据块和目的数据块在存储中可能有三种情况,如图4-1所示。

图4-1

对于两个数据块分离的情况,如图4-1(a),数据的传送从数据块的首址开始,或者从数据块的末址开始均可。但对于有部分重迭的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏,可以得到以下结论:

当源数据块首址>目的块首址时,从数据块首地址开始传送数据。 当源数据块首址<目的块首址时,从数据块末地址开始传送数据。

实验程序及流程如下:

STACK SEGMENT STACK

源数 据块 目的数据块 FFFFFH

00000H (a )

00000H (b )

FFFFFH

源数据块

目的数据块

00000H (c )

FFFFFH

目的数据块

源数据块

DW 64 DUP()

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE

START: MOV CX,0010H;

MOV SI,3100H ;

MOV DI,3200H ;

CMP SI,DI ;

JA A2 ;是,转移

ADD SI,CX ;

ADD DI,CX

DEC SI

DEC DI

A1: MOV AL,[SI];

MOV [DI],AL

DEC SI

DEC DI

DEC CX

JNE A1

JMP A3

A2: MOV AL,[SI]

MOV [DI],AL

INC SI

INC DI

DEC CX

JNE A2

A3: JMP A3

CODE ENDS

END START

实验步骤

(1)按实验流程图设计编写实验程序。

(2)输入实验程序并检查无误,经汇编,连接后装入系统。(设CS:0000H,IP:2000H)

(3)用E命令在以SI为起址的单元中填入16个数。

(4)G=0000:2000↙,运行以上程序。

(5)用D命令查看DI为起址的单元中的数据是否与SI单元中数据相同。

(6)试改变SI、DI的取值,观察在三种不同的数据块情况下程序的运行。

四、思考题

为什么当源数据块首址>目的块首址时,应从数据块首址开始传送数据;而当源数据块

首址<目的块首址时,应从数据块末地址开始传送数据

实验五循环程序设计

一、实验目的

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

2.掌握循环结构程序设计的方法。

3.熟练掌握调试循环程序的方法。

二、实验设备

TDN86/51教学实验系统一台

三、实验内容及步骤

1.编制程序使S=1+2×3+3×4+4×5+…+N(N+1),直到N(N+1)项大于200为止。

实验程序及流程如下:

DW 64 DUP()

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE

START: MOV DX,0001H

MOV BL,02H

A1: MOV AL,BL

INC BL

MUL BL

ADD DX,AX

CMP AX,00C8H

JNA A1

A2: INT 03H

CODE ENDS

END START

实验步骤

(1)按流程图编制实验程序。

(2)输入实验程序并检查无误,经汇编,连接后装入系统。(设CS:0000H,IP:2000H)(3)G=0000:2000↙,运行以上程序。

(4)RAX↙,显示结果。

2.求某数据区内复数的个数

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

实验程序及流程如下:

STACK SEGMENT STACK Array DW 64 DUP()

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE

START: MOV DI,3000H ;设数据区首址

MOV CL,[DI] ;送数据个数

XOR CH,CH ;CH清0

MOV BL,CH ;BL清0

INC DI ;指针指向第一个数据

A1: MOV AL,[DI]

TEST AL,80H;数据首位是否为1

JE A2

INC BL ;负数个数累加

A2: INC DI

LOOP A1

MOV [DI],BL ;存结果

INT 03H

CODE ENDS

END START

实验步骤

(1)按流程图编制实验程序。

(2)输入实验程序并检查无误,经汇编,连接后装入系统。(设CS:0000H,IP:2000H)(3)E3000↙输入数据如下:

3000=06(数据个数)

3001=12、88、82、90、22、33。

G=0000:2000↙,运行以上程序。

(4)D=3007↙,显示结果03。

(5)反复试几组数,考察程序的正确性。

四.思考题

修改程序2,使其能分别求出数据区中正数、零和负数的个数。

实验六 子程序设计实验

一、实验目的

1.学习子程序的定义和调用方法。

2.掌握子程序、子程序的嵌套、递归子程序的结构。 3.掌握子程序的程序设计、编制及调用。 二、实验设备

TDN86/51教学实验系统一台

三、实验内容及步骤

1.求无符号字节序列中的最大值和最小值 设有一字节序列,其存储首址为3000H ,字节数为08H 。 利用子程序的方法编程求出该序列中的最大值和最小值。 实验程序及流程如下:

STACK SEGMENT DW 64 DUP() STACK ENDS

CODE SEGMENT

ASSUME CS:CODE

START: MOV SI,3000H

MOV CX,0008H CALL branch INT 03H

branch: JCXZ A4

PUSH SI

PUSH CX

PUSH BX MOV BH,[SI] MOV BL,BH

A1: LODSB

CMP AL,BH

JBE A2

MOV BH,AL JMP A3 A2: CMP AL,BL JAE A3 MOV BL,AL

A3: LOOP A1

MOV AX,BX

POP BX

POP CX

子程序

POP SI

A4: RET

CODE ENDS

END START

实验步骤

(1)根据流程图编写出相应的程序。

(2)输入实验程序并检查无误,经汇编,连接后装入系统。(设CS:0000H,IP:2000H)(3)E30000↙,输入8个字节的数据:D9、07、8B、C5、EB、04、9D、F9。

(4)G=0000:2000↙,运行以上程序。

(5)RAX↙,显示结果,AX=F9 04,AH中为最大值,AL中为最小值。

程序说明:该程序使用BH和BL暂存现行的最大值和最小值,开始时初始化成首字节的内容,然后进入循环操作,从字节序列中逐个取出一个字节的内容与BH和BL比较,若取出的字节内容比BH的内容大或比BL的内容小,则修改之。当循环操作结束时,将BH送AH,将BL送AL,作为返回值,并恢复BX原先内容。

四、思考题

1.若求有符号字节型序列中的最大值和最小值,如何修改程序

2.子程序执行完毕后要返回程序调用,它返回调用程序的什么地方,是靠什么指令、什么方法返回的

实验七存储器扩展实验

一、实验目的

1.学习掌握存储器扩展方法和存储器读/写。 2.了解6264RAM特性。

二、实验设备

TDN86/51教学实验系统一台

三、实验内容及步骤

(一)系统中的存储器扩展单元

1.6264RAM介绍

静态RAM是由MOS管组成的触发器电路,每个触发器可以存放1位信息。只要不掉电,所存储的信息就不会丢失。因此,静态RAM工作稳定,不需要外加刷新电路,使用方便。但一般SRAM的每一个触发器是由6个晶体管组成,SRAM芯片的集成度不会太高,目前较常用的有6216(2K*8位),6264(8K*8位),62256(32K*8位)。6264RAM有8192个存储单元,每个单元为8位字长。6264的引脚如图7-1所示,WE、OE、CE1、CE2的共同作用决定了芯

所示。

表7-1 6264运行方式

WE CE1CE2OE方式D0~D7×H××未选中(掉电)高阻××L×未选中(掉电)高阻

H L H H输出禁止高阻

H L H L读OUT

L L H H写IN L L H L写IN

2.系统实验单元中的6264线路如图7-1所示

图7-1 6264引脚及实验单元中的6264

(二)存储器扩展实验

按图7-2所示实验线路编写程序,将6264直接挂至总线进行存储器扩展。

图7-2 实验线路

实验程序如下:

STACK SEGMENT STACK

DW 64 DUP()

STACK ENDS

DATA SEGMENT

TABLE DB 0AH DUP()

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA ;程序装入后用U命令查看此语句可

MOV DS,AX ;知数据段地址,以便于用E命令修

MOV CX,000AH ;改变量参数

MOV BX,OFFSET TABLE

MOV SI,0000H

A1: MOV AL,[BX]

PUSH DS

PUSH AX

MOV AX,2000H

MOV DS,AX

POP AX

MOV [SI],AL

POP DS

INC SI

INC BX

LOOP A1

A2: JMP A2

CODE ENDS

END START

实验步骤

(1)按图7-2所示实验线路连接。

(2)输入实验程序并检查无误,经汇编,连接后装入系统。

(3)用U命令查看程序第一、二句找出原数据区段地址XXXX,用E命令在XXXX:0000-XXXX:0009中分别放入10个数。

(4)运行以上程序。

(5)用D命令检查2000:0000-2000:0009单元内容是否与原数据区放入的10个数一致。

实验八中断特性及8259应用编程实验

一、实验目的

1.认识TDN86/51系统的中断特性。

2.掌握8259中断控制器的工作原理。

3.掌握8259可编程中断控制器的应用编程。

4.学习在接口实验单元上构造连接实验电路的方法。

二、实验设备

TDN86/51教学实验系统一台排线、导线若干

三、实验内容及步骤

(一)系统中的8259A芯片

1.系统中的8259A芯片

系统中的8259A芯片工作于单片方式,但可由用户扩展成级连方式。其线路如图8-1所示。图中的圈点表示此为排针形式引出脚。(注:以下线路图中的圈点均为排针形式引出脚以后不再另作说明。)

图8-1 系统中的8259A芯片

系统启动时,8259A被初始化,其初始化是通过系统中的初始化程序设置初始化命令字ICW 来实现的。系统初始化时,规定IRQ0和IRQ4中断源分别提供给实时时钟和与PC微机联机的串口通讯,用户可以使用其余的中断源。在进入监控后,只有IRQ4中断源处于开启状态,其他中断源被屏蔽了。中断矢量地址与中断号之间的关系如下表。

中断序号01234567

功能调用08H09H0AH0BH0CH0DH0EH0FH

矢量地址20H

|

23H

24H

|

27H

28H

|

2BH

2CH

|

2FH

30H

|

33H

34H

|

37H

38H

|

3BH

3CH

|

3FH

说明实时时钟可用可用可用串口1可用可用可用

除系统中的8259A芯片外,在接口实验单元中专门提供了另一片8259A芯片,以便进行8259连接实验。其线路如图8-2所示。

3.接口实验单元中的R-S触发器电路,如图8-3所示。

(二)实验内容

1.8259应用实验(1)

按图8-4所示实验线路编写程序,使每次响应外部中断IRQ7时,显示字符“7”,中断10次后,程序退出。实验程序及流程如下:

图8-2 接口实验单元中的级联用8259A芯片线路

图8-3 R-S触发器电路

图8-4 实验(1)线路

主程序 STACK SEGMENT DW 64 DUP() STACK ENDS CODE SEGMENT ASSUME CS:CODE START: PUSH DS MOV AX,0000H MOV DS,AX MOV AX,OFFSET IRQ7 ADD AX,2000H MOV SI,003CH MOV [SI],AX MOV AX,0000H MOV SI,003EH MOV [SI],AX CLI POP DS

;保存数据段

;数据段清零

;取中断程序入口地址(相对地址) ;加装载时IP=2000H 地址(绝对地址)

;填8259中断7中断矢量

;填偏移量矢量

;段地址CS=0000H

;填段地址矢量

;关中断 ;弹栈 IN AL,21H AND AL,7FH OUT 21H,AL MOV CX,000AH A1: CMP CX,0000H JNZ A2 IN AL,21H OR AL,80H OUT 21H,AL STI HLT A2: STI JMP A1 IRQ7:MOV AX,0137H INT 10H MOV AX,0120H INT 10H

DEC CX

MOV AL,20H

OUT 20H,AL

CLI

IRET CODE ENDS

END START ;读8259中断屏蔽字 ;开8259中断7

; 读8259中断屏蔽字 ;开8259中断7

;中断程序入口

实验步骤

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

(2) 输入实验程序并检查无误,经汇编,连接后装入系统。(设CS:0000H ,IP :2000H )

IRQ7中断服务处理

(3)G=0000:2000↙,运行以上程序。(注意:程序中8259中断矢量地址为绝对地址,已定义为段地址CS=0000H,偏移量地址IP=2000H,故装载时一定按此填入CS和IP 地址,后面实验不再重述。)

(4)重复按KK2微动开关,显示屏上应用“7”来响应,直到按10次后,系统处于停机状态,用CTRL+C返回监控。

2.8259应用实验(2)

图8-5 实验(2)线路

按图8-5所示实验线路,编写程序,完成下面的要求:

当无中断请求时,执行主程序,延时显示“main”,若有中断请求,则执行其中断服务程序,显示该中断号“6”或“7”;若正在执行较低级的中断服务程序,则允许比它优先级高的中断被响应(IRQ6>IRQ7)。主程序在执行过程中,每显示一个“main”,空一格。实验程序如下:

STACK SEGMENT STACK

DW 64 DUP()

STACK ENDS

DATA SEGMENT

TABLE DB 4DH,41H,49H,4EH,20H,00H DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

PUSH DS

MOV AX,0000H

MOV DS,AX

MOV AX,OFFSET IRQ6

ADD AX,2000H

MOV SI,0038H

MOV [SI],AX

MOV AX,0000H

MOV SI,003AH

MOV [SI],AX

MOV AX,OFFSET IRQ7

ADD AX,2000H

MOV SI,003CH

MOV [SI],AX

MOV AX,0000H ;定义堆栈段

;定义数据段

;定义代码段

;主程序开始

;填数据段地址

;保存数据段

;数据段清零

;取中断程序入口地址(相对地址)

;加装载时IP=2000H地址(绝对地址);填8259中断6中断矢量

;填中断6偏移量矢量

;段地址CS=0000H

;填中断6段地址矢量

;取中断程序入口地址(相对地址)

;加装载时IP=2000H地址(绝对地址);填8259中断7中断矢量

;填中断7偏移量矢量

;段地址CS=0000H

MOV SI,003EH

MOV [SI],AX

POP DS

MOV AL,13H

OUT 20H,AL

MOV AL,08H

OUT 21H,AL

MOV AL,09H

OUT 21H,AL

MOV AL,3DH

OUT 21H,AL

STI

A1: MOV CX,0007H

MOV AX,010DH

INT 10H

A2: MOV AH,06H

MOV BX,OFFSET TABLE

INT 10H

CALL DALLY

LOOP A2

JMP A1

IRQ6: STI

CALL DALLY

MOV AX,0136H

INT 10H

MOV AL,20H

OUT 20H,AL

IRET

IRQ7: STI

CALL DALLY

MOV AX,0137H

INT 10H

MOV AL,20H

OUT 20H,AL

IRET

DALLY: PUSH CX

PUSH AX

MOV CX,0040H

A3: MOV AX,056CH

A4: DEC AX

JNE A4

LOOP A3

POP AX

POP CX ;填中断7段地址矢量

;弹栈

;回车换行

;取数据段中ASCII码存放地址;调字符串显示“main”

;调延时子程序

;到7次换行

;8259中断6程序入口

;显示“6”

;显示空格

;中断返回

;8259中断7程序入口

;显示“7”

;显示空格

;中断返回

;延时子程序入口

相关主题
文本预览
相关文档 最新文档