单片机实验一
单片机实验报告

单片机实验报告实验一:存储器块清零或赋值一、实验目的1 熟悉存储器的读写方法,熟悉51汇编语言结构。
2 熟悉循环结构程序的编写。
3 熟悉编程环境和程序的调试。
二、实验内容指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。
例如将4000H开始的10个字节内容清零或全部赋值为33H。
注意:1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。
2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。
5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。
三、实验仪器微机、VW,WA VE6000编程环境软件,(单片机实验箱)Lab6000/Lab6000通用微控制器MCS51实验四、实验步骤1、新建工程文件。
(注意:文件不要用中文名称保存时不要用中文路径)2、编写程序。
3、运行和调试过程。
外部数据存储器(4000H为首地址的10个字节)中初始状态(随便赋值FFH):单步执行程序,观察SFR中外部地址指针的变化;全速执行程序,可以看到外部数据存储器已赋值33H:五、实验结果可以看到外部数据存储器已赋值33H:六、问题讨论本次实验能够清楚地了解存储器中数据的移动和赋值过程,通过单步执行,对于每一步的指令操作过程能够了解如何执行,查看每条语句涉及到的寄存器和存储器内容的变化结果。
同时,学习掌握汇编程序的编写和调试过程。
实验二:存储块移动一、实验目的1 熟悉51汇编语言程序结构。
2 熟悉循环结构程序的编写,进一步熟悉指令系统。
3 熟悉编程环境和程序的调试。
二、实验内容将指定源地址(3000H)和长度(10字节)的存储块移动到目的地址(3050H)。
湖南工业大学单片机实验报告 1认识实验剖析

实验一、认识实验实验一(一):存储器读写一、实验目的1、掌握寄存器、存储器读写等汇编指令;2、掌握编程软件编辑、编译、调试等基本操作;3、学习简单程序的基本调试方法。
二、实验设备PC机、Keil 软件、Proteus软件。
三、实验内容将70H-7FH16个字节单元的数据复制到片外存储器2000H开始的地址单元中,程序清单如下:ORG 0000HSJMP STARTORG 0030HSTART:MOV 70H,#00HMOV 71H,#01HMOV 72H,#02HMOV 73H,#03HMOV 74H,#04HMOV 75H,#05HMOV 76H,#06HMOV 77H,#07HMOV 78H,#08HMOV 79H,#09HMOV 7AH,#0AHMOV 7BH,#0BHMOV 7CH,#0CHMOV 7DH,#0DHMOV 7EH,#0EHMOV 7FH,#0FHMOV R1,#10HMOV R0,#70HMOV DPTR,#2000HLOOP:MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R1,LOOPEND四、上机操作及调试步骤1、启动PC机,打开Keil4软件,如图(1)图(1)2、建立Keil工程文件,如图(2)图(2)3、建立一个exe1工程文件(工程文件名任意取),不需要扩展名。
选择工程存放路径,点击“保存”按钮。
如图(3)图(3)4、选择芯片,51单片机在Atmel下,找到A T89C51,选中点击OK;图(4)5、因为使用汇编语言,下面弹出窗口选否;图(5)6、建立工程如图图(6)7、为工程添加文件,也就是汇编代码,点击新建按钮(或File->new),弹出Text1文本文件。
新建.ASM文件如图图(7)8、另存为到工程文件,点击保存,保存.asm文件图(8)9、保存后如图图(9)10、添加源文件exe1.asm,右键单击Source Group1,选中其中的“Add file to Group”Source Group1”,出现一个对话框,要求寻找源文件,单击exe1.asm文件,然后在点击Add按钮,此时对话框不会消失,在点击close就Ok 了,如图图(10)图(11)11、没有匹配的源文件,不要急,将C Source file(*.c)换成All files(*.*),源文件就出来了图(12)12、最终如图13、接下来就是写汇编代码了14、写好汇编代码,点击下面三个按钮进行编译……,没有错误(0 Error)就编译通过15、生成hex文件,下载到单片机中,使得单片机工作…………设置如下:单击如下按钮,在弹出的对话框中选中output列表项,按图设置,并单击OK保存就行了。
单片机实验报告一 单片机软件实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019.4.9 实验成绩:实验一单片机软件实验(一)实验目的1.掌握51单片机keil软件集成开发环境,能够使用汇编语言编写应用程序。
2.掌握使用集成开发环境Keil进行单片机程序开发的方法3.掌握使用集成开发环境Keil进行单片机程序跟踪调试的方法。
(二)设计要求熟悉51单片机的keil软件集成开发环境,使用汇编语言编写“1+2+3+…+100”的程序。
(三)实验原理KeilC51软件使用:在KeilC51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。
(四)实验设备PC机,Keil C51集成开发环境。
(五)实验结果对汇编程序进行编译、链接、调试,在Keil C51软件中运行仿真结果如下图所示,由于“1+2+……100”运行结果超过8位二进制所能表示的范围,计算结果将存放于两个8位工作寄存器单元R2、R3中。
其中,低八位存放于R2中,高八位存放于R3中,R4中存放计算数。
下图中的寄存器窗口中可以显示计算结果为0x13ba。
调出存储器窗口Memory:选择菜单命令View →Memory Window →Memory 1:可见计算结果存放于当前工作寄存器R2(02H)与R3(03H)中,为0x13BA。
(六)结果讨论与心得体会第一次使用Keil C51软件,初步了解了软件:Keil uVision4的使用方法,初步了解了Keil软件中程序的编辑,新工程的建立运行,初步对单片机实验进行了解,加强了实验动手操作能力。
第一次尝试单步调试,能观察到内存中每一个单元的变化,感到单片机系统复杂中的严谨,收获颇丰。
(七)附录:实验源代码实验源代码如下:ORG 0000HLJMP MAINORG 0050H MAIN:MOV R2,#00HMOV R3,#00HMOV R4,#64HMOV A,#00HCLR C LOOP:MOV A,R2ADD A,R4MOV R2,AMOV A,#00HADDC A,R3MOV R3,ADJNZ R4,LOOPSJMP $END。
单片机实验一-加法器实验报告

单片机实验一-加法器实验报告南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合■设计□创新实验日期:实验成绩:实验一单片机软件实验—1至100求和(一)实验目的1.掌握51单片机Keil软件集成开发环境。
2.学习使用汇编语言编写应用程序。
(二)设计要求熟悉51单片机的Keil软件集成开发环境,使用汇编语言编写“1+2+3+…+100”的程序。
(三)实验原理类似C语言里的循环语句,从1开始加,利用CJNE判断是否已加到100,从而进行循环计数。
(四)实验设备装有Keil4的电脑一台(五)实验结果计算结果高8位r3为0x13,低8位r4为0xba,即0x13ba,十进制数5050。
(六)结果讨论与心得体会实验结果和预期结果一致。
以前就用过Keil编程C51,所以使用起来没有什么障碍。
第一次自己编汇编程序,感觉汇编和C还是有很多相通之处,有很多思想和方法可以借鉴。
(七)附录:实验源代码ORG 0000H ;程序运行入口LJMP M AIN ;跳向主程序MAINORG 0030H ;主程序入口MAIN: MOV R2,#01H ;给R2赋初值1,从1开始加MOV R3,#00H ;R3用于存放最终结果的高8位MOV R4,#00H ;R4用于存放最终结果的低8位START: CLR C;Cy位清零CJNE R2,#65H,LOOP ;判断R2是否等于101,如果不相等,就跳到LOOPSJMP RESULT ;R2等于101时,表示已经完成1加到100的运算,跳转到RESULT LOOP: MOV A,R2 ;将R2的值移入累加器ADD A,R4 ;将R4的值加到累加器里MOV R4,A ;将累加器的值移入R4,作为相加后结果的低8位MOV A,R3 ;将R3的值移入累加器ADDC A,#00H ;累加器加0,并且带进位相加,这样做就把低8位进位加上去了MOV R3,A ;将累加器的值移入R3,作为相加后结果的高8位INC R2 ;R2的值加1,递增,作为下一个加数SJMP START ;跳转到START,继续相加RESULT: SJMP RESULT ;显示结果END ;结束。
[整理]单片机6个必做实验
![[整理]单片机6个必做实验](https://img.taocdn.com/s3/m/1361a0cf7e192279168884868762caaedd33bac0.png)
第一部分软件实验实验一二进制到BCD码转换一、实验目的1、掌握简单的数值转换算法2、基本了解数值的各种表达方法二、实验说明单片机中的数值有各种表达方式,这是单片机的基础。
掌握各种数制之间的转换是一种基本功。
我们将给定的一个二进制数,转换成二十进制(BCD)码。
将累加器A的值拆为三个BCD码,并存入RESULT开始的三个单元,例程A赋值#123。
三、实验内容及步骤1、启动计算机,打开伟福仿真软件,进入仿真环境。
首先进行仿真器的设置,选择使用伟福软件模拟器。
2、打开TH2.ASM源程序进行编译,编译无误后,全速运行程序,打开数据窗口(DATA),点击暂停按钮,观察地址30H、31H、32H的数据变化,30H更新为01,31H更新为02,32H更新为03。
用键盘输入改变地址30H、31H、32H的值,点击复位按钮后,可再次运行程序,观察其实验效果。
修改源程序中给累加器A的赋值,重复实验,观察实验效果。
3、打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及源程序1.源程序RESULT EQU 30HORG 0000HLJMP STARTBINTOBCD:MOV B,#100DIV ABMOV RESULT,A ;除以100得百位数MOV A,BMOV B,#10DIV ABMOV RESULT+1,A ;余数除以10得十位数MOV RESULT+2,B ;余数为个位数RETSTART:MOV SP,#40HMOV A,#123CALL BINTOBCDLJMP $END2.流程图实验四程序跳转表一、实验目的1、了解程序的多分支结构2、掌握多分支结构程序的编程方法二、实验说明多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。
若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。
井冈山大学 单片机实验(3个)

实验一外部中断实验(急救车与交通灯)一、实验目的1、学习外部中断技术的基本使用方法。
2、学习中断处理程序的编程方法。
二、实验要求有急救车到达时,两向交通信号灯为红,以便让急救车通过路口的时间为5秒,急救车通过后交通信号灯恢复中断状态。
本实验以按键为中断申请,表示有急救车通过。
三、实验器材单片机开发板、万利仿真机、稳压电源、计算机三、实验原理1、工作原理:本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。
要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意。
一是主程序中的延时程序和中断处理程序中的延时程序不能混用,本实验中,主程序延时用的寄存器和中断延时用的寄存器应不相同。
2、工作框图四、实验电路与连线五、实验源代码;FOR EAT598CS273 EQU 0F200HORG 0000HLJMP STARTORG 0003H ;INT 0 中断入口地址LJMP INT0ORG 0040HSTART:MOV SP,#60HSETB EX0 ;INT 0 中断有效SETB IT0SETB EALCALL STATUS0 ;初始状态(都是红灯) CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯LCALL STATUS3 ;南北红灯,东西绿灯LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯LJMP CIRCLEINT0:PUSH PSW ;保护现场PUSH 2PUSH ACCMOV DPTR,#CS273MOV A,#0FH ;南北,东西都亮红灯MOVX @DPTR,AMOV R2,#50 ;延时8秒LCALL DELAYPOP ACC ;恢复现场MOVX @DPTR,APOP 2POP PSWRETISTATUS0: ;南北红灯,东西红灯MOV DPTR,#CS273MOV A,#0FHMOVX @DPTR,AMOV R2,#10 ;延时2秒LCALL DELAYRETSTATUS1: ;南北绿灯,东西红灯MOV DPTR,#CS273MOV A,#96H ;南北绿灯,东西红灯MOVX @DPTR,AMOV R2,#50 ;延时5秒LCALL DELAYRETSTATUS2: ;南北绿灯闪转黄灯,东西红灯MOV DPTR,#CS273MOV R3,#03H ;绿灯闪3次FLASH: MOV A,#9FHMOVX @DPTR,AMOV R2,#03HLCALL DELAYMOV A,#96HMOVX @DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASHMOV A,#06H ;南北黄灯,东西红灯MOVX @DPTR,AMOV R2,#10 ;延时1秒LCALL DELAYRETSTATUS3: ;南北红灯,东西绿灯MOV DPTR,#CS273MOV A,#69HMOVX @DPTR,AMOV R2,#50 ;延时5秒LCALL DELAYRETSTATUS4: ;南北红灯,东西绿灯闪转黄灯MOV DPTR,#CS273MOV R3,#03H ;绿灯闪3次FLASH1: MOV A,#6FHMOVX @DPTR,AMOV R2,#03HLCALL DELAYMOV A,#69HMOVX @DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASH1MOV A,#09H ;南北红灯,东西黄灯MOVX @DPTR,AMOV R2,#10 ;延时1秒LCALL DELAYNOPRETDELAY: ;延时子程序PUSH 2PUSH 1PUSH 0DELAY1: MOV 1,#00HDELAY2: MOV 0,#0B2HDJNZ 0,$DJNZ 1,DELAY2 ;延时100 mSDJNZ 2,DELAY1POP 0POP 1POP 2RETEND实验二单片机内部定时器应用一、实验目的1、理解单片机内部定时器的工作原理及使用方法2、了解单片机定时中断程序的编写和调试方法3、掌握定时器的基本使用方法二、实验要求由8031内部定时器1,按连接方式1工作,即作为16位定时器的使用每0.05秒钟T1溢出中断一次。
单片机实验1数据排序

电子信息学院实验报告书课程名:《单片机原理及应用实验》题目:实验一数据排序实验软件实验实验类别:【设计】班级:学号:姓名:评语:(1)电路连接调试:□正确□基本正确□不正确(2)实验程序编写:□正确□基本正确□不正确(3)数据测量分析:□准确□基本准确□不准确成绩:□A □B □C □D ,指导教师:批阅时间:年月日1、实验内容或题目题目:数据排序实验实验内容:用冒泡法将内存RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。
2、实验目的与要求实验目的:(1)熟悉51指令系统,掌握程序设计方法;(2)掌握汇编语言设计和调试方法实验要求:将RAM 50H~5AH 中放入不等的数据,编写并调试一个排序子程序,按从小到大的次序重新排列。
3、实验仪器(1)DJ-598K三合一单片机微机试验仪1块(2)PC微机1台4、实验程序框图(供参考)6、实验程序(实验程序清单作为附件放在最后)7、实验步骤将RAM 50H~5AH 中放入不等的数据,运行实验程序后检查50H~5AH中的内容是否按从小到大的次序排列。
8、实验数据RAM 50H~5A中依次放置如下数据:55,66,AA,44,77,22,88,00,33,55,99;程序运行后RAM 50H~5A中的数据依次为:9、思考题本题中,如何修改程序把50H~5AH中内容从大到小排列?答:ORG 0000HMOV DPTR,#2000HMOVX A,@DPTRMOV B,ASWAP AANL A,#0FHINC DPTRMOVX @DPTR,ANC DPTRMOV A,BANL A,#0FHMOVX @DPTR,ASJMP $END<附件> 实验程序清单ORG 0000HLJMP QUEORG 09B0HQUE: MOV R3,#50HQUE1: MOV A,R3MOV R0,AMOV R7,#0AHCLR 00HMOV A,@R0QL2: INC R0MOV R2,ACLR CMOV 22H,@R0CJNE A,22H,QL3 SETB CQL3: MOV A,R2JC QL1SETB 00HXCH A,@R0INC R0QL1: MOV A,@R0DJN2 R7,QL2JB 00H,QUE1 LOOP: SJMP LOOPEND。
单片机实验一实验报告

题目实验1 P1口实验一一、实验目的:1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
二、实验设备:CPU挂箱、8031CPU模块三、实验内容:1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2.P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。
四、实验步骤:1、打开CPU挂箱,正确安装8031CPU模块,指导显示屏上显示“199502”字样2、执行程序1(T1_1.ASM)时:P1.0~P1.7口接发光二极管L1~L8。
执行程序2(T1_1.ASM)时:P1.0~P1.7口接平推开关K1~K8;74LS273的O0~O7接发光二极管L1~L8;74LS273的片选端CS273接CS0。
3、打开软件,选择相应的COM口和波特率,电脑与CPU挂箱正确连接上后,软件窗口的下端会显示已连接上,相应的CPU挂箱显示屏上会显示“C ”字样。
4、在软件上选择新建,新建文件类型为ASM51,新建好后,编写程序。
5、程序编写好后,选择保存,然后进行编译,调试,运行程序。
6、观察CPU挂箱上硬件的运行是否与设计的一样,否则进行相应的修改和调试。
五、注意事项1、P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。
作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。
8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。
2、延时程序的实现,采用指令循环来实现,本实验系统晶振为 6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us。
现要写一个延时0.1s的程序,可大致写出如下: MOV R7,#X (1)X为外循环的次数,放在R7DEL1:MOV R6,#200 (2)200为内循环的次数,放在R6DEL2:DJNZ R6,DEL2 (3)执行内循环DJNZ R7,DEL1 (4)判断R7是否为0,是否结束循环上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X 值:1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10⁶指令(1)指令(2)指令(3)指令(4)所需时间所需时间所需时间所需时间所以X=(0.1×10⁶-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH 经计算得X=127。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片8259A的中断实验
DATA SEGMENT
MESS DB ‘IRQ7 interrupt’ , ‘$’
DATA ENDS
STACK SEGMENT STACK ‘STACK’
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE, DS:DATA, ES:DATA,SS:STACK START: MOV AX, STACK
MOV SS, AX
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AL,0FH
MOV AH,35H
INT 21H
PUSH ES
PUSH BX ;存原中断向量
PUSH DS
MOV DX, OFFSET IRQ7SERVER
MOV AX, SEG IRQ7SERVER
MOV DS,AX
MOV AL,0FH
MOV AH,25H
INT 21H
POP DS
IN AL,21H
AND AL,0FEH ;允许irq7中断
OUT 21H,AL
MOV CX,5 ;最多允许5次中断NEXTT: DEC CX
JZ ENDALL
STI
MOV DI,200
DELAY: MOV SI,300
DELAY1: DEC SI
JNZ DELAY1
DEC DI
JNZ DELAY
JUMP NEXTT
ENDALL: IN AL,21H
OR AL,1H
OUT 21H,AL ;屏蔽irq7中断
POP DX
POP DS
MOV AL,0FH
MOV AH,25H
INT 21H
STI
RET
MAIN ENDP
IRQ7SERVER PROC NEAR
PUSH DS
PUSH AX
PUSH CX
PUSH DX
MOV AX,DATA
MOV DS,AX
STI
MOV DX, OFFSET MESS
MOV AH,09H
INT 21H
CLI
POP DX
POP CX
POP AX
POP DS
IRET
IRQ7SERVER ENDP
CODE ENDS
END START
单片8259A的中断嵌套实验
DATA SEGMENT
LEFT DB ‘{’ , ‘$’
RIGHT DB ‘}’,’$’
THREE DB ‘3’ ,’$’
SEVEN DB ‘7’ ,’$’
DATA ENDS
STACK SEGMENT STACK ‘STACK’
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE, DS:DATA, ES:DATA,SS:STACK
START: MOV AX, STACK
MOV SS, AX
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AL,0FH
MOV AH,35H
INT 21H
PUSH ES
PUSH BX ;存入0f号中断的原中断向量
MOV AL,0BH
INT 21H
PUSH ES
PUSH BX ;存入0b号中断的原中断向量
PUSH DS
MOV DX, OFFSET IRQ7SERVER
MOV AX, SEG IRQ7SERVER
MOV DS,AX
MOV AL,0FH
MOV AH,25H
INT 21H
MOV DX,OFFSET IRQ3SERVER
MOV AX,SEG IRQ3SERVER
MOV DS,AX
MOV AL,0BH
INT 21H
POP DS
IN AL,21H
AND AL,0EEH ;允许irq3,irq7中断
OUT 21H,AL
MOV CX,5
NEXTT: DEC CX
JZ ENDALL
STI
MOV DI,200
DELAY: MOV SI,300
DELAY1: DEC SI
JNZ DELAY1
DEC DI
JNZ DELAY
JUMP NEXTT
ENDALL: IN AL,21H
OR AL,11H
OUT 21H,AL ;屏蔽irq3,irq7中断
POP DX
POP DS
MOV AL,0BH
MOV AH,25H
INT 21H ;恢复0b号中断原中断向量
POP DX
POP DS
MOV AL,0FH
INT 21H ;恢复0f号中断原中断向量
STI
RET
MAIN ENDP
IRQ7SERVER PROC NEAR
PUSH DS
PUSH AX
PUSH CX
PUSH DX
MOV AX,DATA
MOV DS,AX
STI
MOV DX, OFFSET LEFT
MOV AH,09H
INT 21H
NEXTT: MOV CX,10
DEC CX
JZ EXIT
PUSH CX
MOV CX,1000
DELAY1: DEC CX
JNZ DELAY
MOV DX, OFFSET SEVEN
MOV AH,09H
INT 21H
POP CX
JUMP NEXTT
EXIT: MOV DX, OFFSET RIGHT
MOV AH,09H
INT 21H
CLI
POP DX
POP CX
POP AX
POP DS
IRET
IRQ7SERVER ENDP
IRQ3SERVER PROC NEAR
PUSH DS
PUSH AX
PUSH CX
PUSH DX
MOV AX,DATA
MOV DS,AX
STI
MOV DX, OFFSET LEFT
MOV AH,09H
INT 21H
NEXTT: MOV CX,10
DEC CX
JZ EXIT
PUSH CX
MOV CX,1000 DELAY1: DEC CX
JNZ DELAY
MOV DX, OFFSET THREE
MOV AH,09H
INT 21H
POP CX
JUMP NEXTT
EXIT: MOV DX, OFFSET RIGHT
MOV AH,09H
INT 21H
CLI
POP DX
POP CX
POP AX
POP DS
IRET
IRQ3SERVER ENDP CODE ENDS
END START。