中断控制器8259A及中断服务

合集下载

第8章中断系统和中断控制器8259A

第8章中断系统和中断控制器8259A
对于外部中断,CPU判断标志位IF,若CPU 允许响应外部中断(IF=1),向发出中断请 求的外设返回一个中断应答信号,否则CPU 不响应该中断请求。
4. 保存现场
CPU响应中断,首先需要禁止CPU响应中 断信号,并保存中断返回地址以及其它可 能被破坏的寄存器
8086/8088 CPU的基本中断现场保护需要 将CS寄存器和IP寄存器压入堆栈
普通屏蔽方式 特殊屏蔽方式
普通中断结束方式 特殊中断结束方式
中断触发方式 数据线连接方式
边沿触发方式 电平触发方式 缓冲方式 非缓冲方式
(1)中断触发方式 按照引入中断请求的方式,8259A有下列几种工作方式:
1>边沿触发方式 8259A将中断请求输入端出现的上升沿,作为中断请求
信号,上升沿后 相应引脚,可以一直保持高电平。
可编程,提高中断优先管理的灵活性。
2. 8259A外部结构
CS WR RD D7 D6 D5 D4 D3 D2 D1 D0 CAS0 CAS1 GND
1
8259A
2 3
4
5
6
7 8
9 10 11 12 13
14
28 27 26 25 24 23 22 21 20 19 18 17 16
15
VCC A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT SP/EN CAS2
2. 优先级判别
多个中断源同时发起中断请求时,CPU需要 对多个中断源的优先级进行判断,响应最紧 急的中断请求。
中断源的优先级需要根据中断源的紧迫性、 重要性以及外设处理速度等进行综合考虑
不可屏蔽中断发生,优先响应不可屏蔽中断。
3. 中断响应

第七章 中断系统和中断控制器8259A

第七章  中断系统和中断控制器8259A

17H*4=90H IP 46 00H CS 3B A4H 00H 46H A4H 3BH
例 n=24H
0000:0090H : 0000:0091H : 0000:0092H : 0000:0093H :
中断处理子程序
3BA4:4600H
2.向中断向量表的设置 向中断向量表的设置
设中断服务程序的入口地址为INTSUB,中断 例7-1设中断服务程序的入口地址为 设中断服务程序的入口地址为 , 类型码务40H,用传送指令设置中断向量表。 用传送指令设置中断向量表。 类型码务 用传送指令设置中断向量表 VECTAB SEGMENT AT 0000、 、 ORG O100H ADDRP DW 2 DUP(?) (?) VECTAB ENDS CODE … SEGMENT CLI
PUSH DS MOV AX,VECTAB , MOV DS,AX , MOV ADDRP,OFFSET INTSUB , MOV ADDRP+2,SEG INTSUB + , POP DS STI CODE ENDS
其中类型为AT的VECTAB段起到对 其中类型为 的 段起到对ADDRP定义 定义 段起到对 地址作用。
中断向量表
• 中断向量表的结构
专用的5个 专用的 个(0#~4#)系统中统一规定 的中断类型。 的中断类型。 保留的27个 保留的 个(5#~31#)为系统开发保 留的中断类型。 留的中断类型。 可供用户定义的224个(32#~225#) 可供用户定义的 个
已知类型中断的中断向量的获取
中断类型号× 中断类型号×4——该中断向量在表中 该中断向量在表中 起始单元的地址。 起始单元的地址。 寻找4个连续存储单元 获得IP及 个连续存储单元, 寻找 个连续存储单元,获得 及CS

8259a中断控制器——利用IRQ2显示中断过程

8259a中断控制器——利用IRQ2显示中断过程

8259a中断控制器:利用8259A的IRQ2显示中断过程目录8259a中断控制器:利用8259A的IRQ2显示中断过程 (1)设计题目: (1)要求: (1)设计思路: (1)实验代码: (2)实验心得体会: (10)设计题目:利用8259A IRQ2显示中断过程要求:1.主是在7段数码管上循环显示‘8’从右到左显示2.中断服务中在7段数码管上依次显示全1234567 89要去显示2秒左右时间可采用软件Software延迟(时间可通过调试大致2秒左右)总计中断9次结束返回DOS3.每次由手动产生IRQ2中断请求信号引起中断设计思路:软件Software方面有两个主要部分:主和中断服务子主首先要完成是些和处理工作例如查找设备设置TPC卡中9054芯片IO口,保存原来0AH号中断中断向量设置新中断向量设置中断掩码显示提示信息然后打开中断进入主循环在主循环中不断在LED上从右向左显示8直到被IRQ2中断信号打断此外在主中还对中断执行进行计数当计数满9次后自动跳出为了使主上8循环可以看出来故将显示8延迟设计比较长当完成9次中断主还要完成些后续处理工作:恢复中断掩码;恢复中断向量;设置TPC卡中9054芯片IO口,关闭中断返回DOS中断子完成在6位数码管上“同时”显示个数功能这个数为1—9中某个可以用循环次数作为参数这里同时显示实质上是利用视觉上暂停效果即只要每秒能在同个数码管上显示信息超过24次看起来就是同时了而这点在现在计算机速度条件下很容易实现为了不发生混乱在中断子执行过程中不允许再次中断另外中还有两个子:findtpc和dispword这些是为了完成查找设备等预处理硬件方面实验时把总线上IRQ2引脚和拨键开关相连以手动产生中断信号另外再把LED片选信号CS和210-217相连(注:LED显示是通过向LED数据端口送入数据再向LED位选端口送入位选信号来实现)实验代码:;386以上微机适用;纯dos下才能使用;tasm4.1或以上编译;**********************************************;;*利用8259AIRQ2 显示中断过程*;;**********************************************;io_plx_device_id equ 05406h ;TPC卡设备IDio_plx_vendor_idequ 010b5h ;TPC卡厂商IDIO_PLX_SUB_ID EQU 0905410B5H;TPC卡子设备及厂商IDportseg EQU 211H-200H ;数码管端口地址portbit EQU 210H-200Hdata segmentcsregdw?[Page]ipreg dw? ;旧中断向量保存空间irq_times dw10 ;中断计数msg1 db 0dh,0ah,\'TPC pci card Interrupt\',0dh,0ah,\'$\'msg2 db 0dh,0ah,\'Press any key to exit!\',0dh,0ah,\'$\'msg3 db 0dh,0ah,\'Press DMC or wait to errupt 10 times and exit!\',0dh,0ah,\'$\'io_9054base_address db 4 DUP(0) ;TPC卡PCI接口芯片I/O基地址暂存空间io_base_addressdb 4 DUP(0) ;TPC卡I/O基地址暂存空间errupt_line db 2 DUP(0) ;TPC卡中断号暂存空间pcicardnotfind db 0dh,0ah,\'TPC pci card not find or address/errupt error !!!\',0dh,0ah,\'$\' io9054baseaddress db 0dh,0ah,\'TPC pci card 9054 Chip I/O Base Address : \',\'$\' iobaseaddress db 0dh,0ah,\'TPC pci card I/O Base Address : \',\'$\'number db 0dh,0ah,\'TPC pci card Interrupt Line : \',\'$\'enter_ db 0dh,0ah,\'$\'MESS DB \'8253A TIMER0 IN MODE3! COUNT=0200H\',0AH,0DHDB \'8253A TIMER1 IN MODE2! COUNT=0aH\',0AH,0DH,\'$\'irq_vect db 08h,09h,0ah,0bh,0ch,0dh,0eh,0fh,70h,71h,72h,73h,74h,75h,76h,77h;新中断向量,中断0-7向量为:08h-0fh,中断8-15向量为:70h-77hirq_mask_0_7_table db 011111110b,011111101b,011111011b,011110111bdb 011101111b,011011111b,010111111b,001111111bdb 011111011b,011111011b,011111011b,011111011b[Page] db 011111011b,011111011b,011111011b,011111011b;新中断掩码,中断0-7时从低至高相应位为零,中断8-15时第2位为零irq_mask_8_15_table db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh db 011111110b,011111101b,011111011b,011110111bdb 011101111b,011011111b,010111111b,001111111b;新中断掩码,中断0-7时全,中断8-15时从低至高相应位为零LED DB 06,5BH,4FH,66H,6DH,7DH,07,7FH,6FHdata endsstacks segmentdb 100 dup (?)stacks endscode segmentassume cs:code,ds:data,ss:stacks,es:datastart:;Enable Local Interrupt Input.386climov ax,datamov ds,axmov es,axmov ax,stacksmov ss,axcall findtpc ;查找TPC卡资源并显示movdx,word ptr io_9054base_addressadd dx,68h;设置tpc 卡中9054芯片io口,使能中断in ax,dxor ax,0900hout dx,axmov bx,word ptr errupt_line ;保存原中断向量mov al, ptr [irq_vect+bx]mov ah,35h21hmov ax,esmov csreg,ax[Page] mov ipreg,bxmov bx,word ptr errupt_line ;设置新中断向量mov al, ptr [irq_vect+bx]mov cx,csmov ds,cxmov dx,off _procmov ah,25h21hmov ax,datamov ds,axmov es,axin al, 21h ;设置中断掩码mov bx,word ptr errupt_linemov ah, ptr [irq_mask_0_7_table+bx]and al,ahout 21h, alin al, 0a1hmov bx,word ptr errupt_linemov ah, ptr [irq_mask_8_15_table+bx]and al,ahout 0a1h, almov dx,off msg2mov ah,09h21hmov dx,off msg3mov ah,09h21hmov irq_times,0sti ;开中断loop1:cmp irq_times,9 ;等待中断并判断中断9次后退出jz exitmov ax,datamov ds,ax[Page] mov al,7FHmovdx,word ptr io_base_addressadd dx,portsegout dx,almov al,blmovdx,word ptr io_base_addressadd dx,portbitout dx,alpushcxmov cx,0FFFFhskip3:push cxmov cx,03FFHskip4:loop skip4pop cxloop skip3pop cxshl bl,1cmp bl,40hjne skip5mov bl,01hskip5:jmp loop1exit:climov bx,word ptr errupt_line ;恢复中断掩码mov ah, ptr [irq_mask_0_7_table+bx]not ahin al, 21hor al, ahout 21h, almov bx,word ptr errupt_linemov ah, ptr [irq_mask_8_15_table+bx]not ahin al, 0a1hor al, ah[Page] out 0a1h, almov bx,word ptr errupt_line ;恢复原中断向量mov al, ptr [irq_vect+bx]mov dx,ipregmov cx,csregmov ds,cxmov ah,25h21hmov ax,data ;设置tpc 卡中9054芯片io口,关闭中断mov ds,axmov dx,word ptr io_9054base_address add dx,68hin ax,dxand ax,0f7ffhout dx,axmov ax,4c00h21h ;退出_proc proc farclipush axpush dxpush dsmov bl,01hmov ax,datamov ds,axmovsi,irq_timesmov cx,05FFHagain:mov al,LED[si]movdx,word ptr io_base_addressadd dx,portsegout dx,almov al,blmovdx,word ptr io_base_addressadd dx,portbit[Page] out dx,alshl bl,1cmp bl,40hjne skip6mov bl,01hskip6:push cxmov cx,0FFFFHagain2:pushcxmov cx,10again4:loopagain4pop cxloop again2pop cxloop againmov al,20h ;Send EOIout 0a0h,alout 20h,alinc irq_timespop dspop dxpop axstiiret_proc endpfindtpc proc near ;查找TPC卡资源并显示pushadpushfdmov ax,0b101h1ahjc findtpc_notfind ;检查PCI BIOS是否存在mov ax,0b102hmov cx,io_plx_device_idmov dx,io_plx_vendor_idmov si,01ahjc findtpc_notfind ;检查tpc卡是否安装,设备号、厂商号[Page]mov ax,0b10ahmov di,02ch1ahjc findtpc_notfindcmp ecx,io_plx_sub_idjnz findtpc_notfind ;检查tpc卡是否安装,子设备号、厂商号mov ax,0b10ahmov di,14h1ahjc findtpc_notfind ;读TPC卡9054芯片I/O基址信息mov dword ptr io_9054base_address,ecxand ecx,1jz findtpc_notfind ;检查是否为i/o基址信息mov ecx,dword ptr io_9054base_addressand ecx,0fffffffehmov dword ptr io_9054base_address,ecx;去除i/o指示位并保存MOV AX,0B10AHMOV DI,18HINT 1AHJCfindtpc_notfind ;读TPC卡I/O基址信息mov dword ptr io_base_address,ecxand ecx,1jz findtpc_notfind ;检查是否为i/o基址信息mov ecx,dword ptr io_base_address[Page] and ecx,0fffffffehmov dword ptr io_base_address,ecx ;去除i/o指示位并保存mov ax,0b10ahmov di,3ch1ahjc findtpc_notfind ;读TPC卡中断信息and cx,0ffhmov word ptr errupt_line,cx ;去除errupt其它指示位并保存mov dx,off io9054baseaddress ;显示i/o提示信息mov ah,09h21hmov ax,word ptr io_9054base_addresscall dispword ;显示i/o基地址mov dx,off iobaseaddress ;显示i/o提示信息mov ah,09h21hmov ax,word ptr io_base_addresscall dispword ;显示i/o基地址mov dx,off number ;显示errupt提示信息mov ah,09h21h[Page] mov ax,word ptr errupt_linecall dispword ;显示中断号mov dx,off enter_ ;加回车符,换行符21hpopfdpopadretfindtpc_notfind:mov dx,off pcicardnotfind ;显示未找到tpc卡提示信息mov ah,09h21hmov ax,4c00h21h ;退出findtpc endpdispword proc near ;显示子push dxpush cxpush bxmov cx,4mov bx,16dispword_loop1:push axpush cxsub bx,4mov cx,bxshr ax,cland al,0fh ;首先取低4位[Page] mov dl,alcmp dl,9 ;判断是否<=9jle dispword_num ;若是则为\'0\'-\'9\',ASCII码加30H add dl,7 ;否则为\'A\'-\'F\',ASCII码加37Hdispword_num:add dl,30hmov ah,02h ;显示21hpop cxpop axloop dispword_loop1pop bxpop cxpop dxret ;子返回dispword endpend start实验心得体会:本实验难点在LED显示上由于在此的前我直认为LED显示是由8255A驱动所以开始做这个时我首先想到是利用8255A但是结合实验箱上LED我才发现这样思路方法行区别于是再回头认真学习了下LED显示原理才发现LED显示其实很简单只要往数据端口送数据再往位选端口送入位选代码就可以了这下流程变得豁然开朗另外在设计时候我和其他同学讨论了手动中断信号种种产生方式最终发现用开关直接和总线插槽上IRQ2直接相连时最简单思路方法!本实验些预处理操作和有关TPC实验板化、后处理都是结合平时实验在此基础上修改完成经过小组成员致努力我们圆满完成了这次实验任务!经过此次实验我体验了从实战到学习再到实战过程乐趣。

第8章 中断系统与中断控制器8259A

第8章  中断系统与中断控制器8259A

第8章中断系统与中断控制器8259A
(4)恢复现场:用弹栈指令把保护现场时入栈寄存器内容 恢复,注意应按先进后出的原则,恢复寄存器原来的内容 值。出栈后,堆栈指针也应恢复到进入中断处理时的位置。 (5)中断返回: 8086CPU必须根据中断结束方式,发中断 结束指令,并在最后用一条中断返回指令IRET。中断返 回指令IRET的作用是将断点的内容重新送入CS和IP寄存 器和标志寄存器,保证CPU从断点开始执行原来的程序。
第8章中断系统与中断控制器8259a存储器地址中断向量地址存储器内容中断向量对应中断类型号00000h中断服务程序入口偏移地址低8位00001h中断服务程序入口偏移地址高8位00002h中断服务程序入口段基址低8位00003h中断服务程序入口段基址高8位00004h中断服务程序入口偏移地址低8位00005h中断服务程序入口偏移地址高8位00006h中断服务程序入口段基址低8位00007h中断服务程序入口段基址高8位003f8h中断服务程序入口偏移地址低8位254003f9h中断服务程序入口偏移地址高8位003fah中断服务程序入口段基址低8位003fbh中断服务程序入口段基址高8位003fch中断服务程序入口偏移地址低8位255003fdh中断服务程序入口偏移地址高8位003feh中断服务程序入口段基址低8位003ffh中断服务程序入口段基址高8位表818086cpu中断向量表第8章中断系统与中断控制器8259a每个中断向量占用4个存储单元4个单元中的前2个单元存放的是中断服务程序所在段内的偏移量ip的内容16位地址
第8章中断系统与中断控制器8259A
3. 中断响应 根据中断请求的中断源的类型不同,中断响应分成以下两 种情况: (1)对非屏蔽中断请求的响应:该请求信号与CPU的NMI 引脚线相连接,如果CPU检测到该请求,CPU执行完当前 指令后就自动执行相应的中断服务程序,CPU不需要发出 中断响应信号。 (2)对可屏蔽中断INTR请求的响应:要检查IF,如IF=1, CPU允许中断,就会在结束当前指令后响应该外设的中断 请求。CPU响应可屏蔽中断时要自动完成下列几步操作:

8259可编程的中断控制器

8259可编程的中断控制器

82598259A是一个可编程的中断控制器,应用在实时的、以中断方式进行监控的计算机系统中。

用一片8259A可以管理8个等级的中断申请。

并可再经级联扩展多至8片8259A,使得中断等级可扩展多至64级。

8259A可以作为一个I/O外围器件,用系统软件编程,它所具有的多种优先权方式可以通过主程序在任何时候进行改变或重新组织。

这意味着可以按照全系统的外围情况和要求,设计出一个完整的中断结构,用来实现优先管理、中断屏蔽以及自动中断矢量转移。

它几乎可以适合于任何一种中断控制的结构,因而得到了广泛的应用。

1 引脚图8259A为28脚双列直插式封装的器件。

2 内部结构其工作过程如下:第一步:当中断请求线(IR0~IR7)上有信号输入时,就把中断请求寄存器IRR相应的位置1。

第二步:当IRR的一位置1后,就会与IMR中相应的屏蔽位进行比较,如该屏蔽位为0,则请求被发送给优先级分析器;如该屏蔽位为1,则封锁该请求。

第三步:当一个中断请求被输入优先级分析器后,将由优先权分析器判定其优先权,然后向CPU 发中断申请,INT脚变高(INT联到8086的INTR)。

第四步:CPU的INTR引脚为异步状态接收,也就是它可以在任何时间(与时钟无关)接收中断。

在软件控制下利用STI指令(中断置位)或CLI(中断复位)指令可分别将CPU的“中断开放标志位”IF置位或复位,可以做到接受或不理睬在INTR上的中断申请。

第五步:假定CPU中的IF标志为1,则CPU在完成当前指令的即进入中断响应周期,这个中断响应周期将标志寄存器入栈,然后清除IF标志,关闭了中断。

再将代码段寄存器和指令指针也入栈(这是为了从中断服务程序返回),然后CPU发出第二个 INTA脉冲通知8259A,说明8086已经允许了它的中断请求。

若8086用于“最小方式”,则INTA脉冲信号为8086 INTA引脚上的信号;若8086用于“最大方式”时,则8086 LOCK脚在中断响应序列执行期间变为低电平。

中断系统和中断控制器8259A详解

中断系统和中断控制器8259A详解
∧∧
微 机 原
第7章 中断系统和中断控制器8259A


应 用
7.1 中断的基本概念
∨∨
•中断:是指CPU在正常运行程序时,由于内部或外部事件 引起CPU暂时中止执行现行程序,转去执行请求CPU为其 服务的那个外设或事件的服务程序,待该服务程序执行完 后又返回到被中止的程序这样一个过程。
•中断源:能发出中断申请的外设或引起中断的原因。
IRR锁存
逻辑电路根据IMR判断 IMR对应位为0
优先权判别器PR




CPU响应中断 IF=1 CPU的INTR端
高 8259A的INT端为1
INTA 8259A
ISR相应位置1, IRR响应位清0,
送中断类型码
●若允许嵌套,PR依据ISR的状态,判断新的中断请求优先权是否高 于正在服务的中断,是则送出INT=1。 ●服务结束,8259A清除ISR响应位。
提高了CPU的利用效率。
7.1.2 中断处理过程
∧∧
微 机
1.中断过程

理 及
● 对于不同的微机系统,CPU中断处理的具体过程不尽相同,但是一
应 用
个完整的中断基本过程应包括五个基本过程:
∨∨


保护现场







断 响
断 处
断 返
开中断





中断处理
产指断触生令接发中或口器断电和CP信路中U确 最号有断引定高。一屏脚有的来个蔽。中那至中触每断个于断发个请中中请器中C自关保形求断P断 求 。动中护成U且 源完 断 现 中响优 。成 ; 场 断应先下 保 服;进级列 护 务入中 中 中工 断 程中断 断作 点 序断服 服 服: ; 入周务 务 务口期就 程 程地,是 序 序弹址过 结C出P程 构断U。 如执点图行,返回主程恢中关序复断。中现返断场回

中断控制器8259A

中断控制器8259A

在第二个中断响应周期,8259A将向 CPU输送如表8-2所示的中断向量,其中 T7~T3是用户在8259A初始化编程中规定 的,而低3位则由8259A自动插入。
8259A 的 编程
8259A的编程可以分为两种: (1)初始化编程:由CPU向8259A送2~4个字节的 初始化命令字ICW(Initialization Command Word)。在8259A开始正常工作之前,必须由初始 化命令字,使其处在开始点。

(2)工作方式编程:由8259A送三个字节的工作命 令字OCW(Operatioon Command Word), 以规定 8259A的工作方式。工作命令字可在8259A已经初 始化以后的任何时间写入。
(1)8259A 初始化编程
对8259A初始化编程就是向它输送2~4个 字节的初始化命令字。
(2)工作方式编程
(4)8259A在接收到CPU的/INTA信号后, 使最高优先权的ISR位置位,而响应的IRR 位复位。(但在此周期中,8259A不向系 统总线发任何内容) (5)8086CPU将启动另外一个中断响应 周期,输出另一个INTA脉冲。在这个周期, 8259A向数据总线输送一个8位的指针(向 量)。 (6)这样中断响应周期就完成了,CPU就 可以至中断服务程序。
中断控制器8259A
在学习中断控制器之前,先回顾中断技术在微机系统 的一些用途。
8259A 的中断顺序(应用于8086系统) (1)当一条或若干条中断请求输入线 (IR7~IR0)变高,则使中断请求寄存器 IRR的相应位置位。 (2)若中断请求线中至少有一条中断允 许,则8259A由INT引脚向CPU发送出中 断请求信号。 (3)若CPU是在开中断状态,则在当前 指令执行完以后,用/INTA作为响应。

实验四 8259A的单级中断控制实验

实验四 8259A的单级中断控制实验

实验四使用8259A的单级中断控制实验一、实验目的1.掌握中断控制器8259A与微机接口的原理和方法。

2.掌握中断控制器8259A的应用编程。

二、实验内容编制程序,利用开关作为8259芯片IR7的中断源,人工控制产生单一中断。

中断的功能是驱动发光二极管,使其亮灭,不停地闪动。

三、实验提示8259中断控制器是专为控制优先级中断设计的芯片。

它将中断源优先级排队,辩别中断源以及提供中断矢量的电路集于一片中。

因此无需附加任何电路,只需对8259进行编程,就可以管理8级中断,并选择优行模式和中断请求方式,即中断结构可以由用户编程来设定。

同时,在不需要增加其它电路的情况下,通过多片8259的级联,能构成多达64级的矢量中断系统。

实验箱中采用一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0~IR7对应的中断型号为8~F,其和中断矢量关于如下表所示。

表1 8259中断矢量对应关系务程序程序,使系统每次响应外部中断IR7时发光二极管闪烁。

四、实验电路五、实验软件清单Port0 EQU 0FFE0HPort1 EQU 0FFE1HCODE SEGMENTASSUME CS:CODE,DS:CODE,ES:CODEORG 3400HP8259: CLIMOV AX,OFFSET INT8259MOV BX,003CHMOV [BX],AXMOV BX,003EHMOV AX,0000HMOV [BX],AXCALL FOR8259MOV AL,0FEHMOV DX,0FFE4HSTIJMP $;============================== FOR8259:MOV AL,13HMOV DX,Port0OUT DX,ALMOV AL,08HMOV DX,Port1OUT DX,ALMOV AL,09HOUT DX,ALMOV AL,7FH ;IRQ7OUT DX,ALRET;--------------------------- INT8259:cliPush dxPush axMOV AL,20HMOV DX,Port0OUT DX,ALPop axPop dxOut dx,almov cx,0loop $Rol al,1STIIRETCODE ENDSEND P8259六、实验软件框图七、实验步骤(1)按实验电路图连接线路:①开关Ki 和8259 7号中断IR7插孔相连。

说明8259a中断控制器中的irr、isr和imr三个寄存器的功能

说明8259a中断控制器中的irr、isr和imr三个寄存器的功能

说明8259a中断控制器中的irr、isr和imr三个寄存器的功能8259A中断控制器是一种常用的外部设备,用于管理和分发系统中的中断请求。

它有三个重要的寄存器:IRR(中断请求寄存器)、ISR (中断服务寄存器)和IMR(中断屏蔽寄存器),这些寄存器在控制和处理中断时起到关键作用。

IRR寄存器(Interrupt Request Register)用于存储当前发生的中断请求。

每个位都对应一个中断源,当某个外部设备发出中断请求时,对应位会被置为1。

CPU可以通过读取IRR寄存器来检测当前的中断请求状态,以确定哪个中断源需要被处理。

ISR寄存器(Interrupt Service Register)用于记录正在被CPU处理的中断源。

当中断请求被CPU接受后,对应的中断源的位会被置为1,表示该中断正在被处理。

ISR寄存器的内容可以帮助CPU追踪当前正在处理的中断,以避免同时处理多个中断源。

IMR寄存器(Interrupt Mask Register)用于屏蔽中断请求。

每个位对应一个中断源,当对应位被置为1时,表示该中断源被屏蔽,即中断请求不会被接受。

通过设置IMR寄存器,CPU可以选择性地屏蔽或允许特定的中断源。

通过IRR、ISR和IMR这三个寄存器的配合使用,8259A中断控制器可以有效地管理和分发系统中的中断请求。

CPU可以通过读取IRR寄存器来检测中断请求,并根据IMR寄存器的设置来确定是否屏蔽某个中断源。

当CPU接受一个中断请求后,会将对应的中断源的位设置为1,并在ISR寄存器中记录下来,以便追踪和处理当前的中断。

当中断处理完成后,CPU会清除ISR寄存器中的相应位,表示中断已经处理完毕。

通过使用这些寄存器,8259A中断控制器可以实现多个中断源的优先级管理、中断请求的屏蔽和中断处理的跟踪。

这些功能对于保证系统可靠性和提高系统的响应能力非常重要。

8259A中断控制器IRQ2的应用

8259A中断控制器IRQ2的应用

8259A中断控制器IRQ2的应用
一、实验目的
掌握8259A中断控制器工作原理,熟悉实验中涉及到的中断屏蔽寄存器IMR和中断服务寄存器ISR等的使用方法.
学会中断处理程序的编写
二、实验内容
用8259A的输出作为中断请求信号使8259A产生中断,进入中断后
显示一个字符串.
中断请求通过8259的IRQ2端输入,中断源可以是片外8253定时器输出的脉冲,并把8253的OUTO和总线槽IR02连接好.
编写程序,要求每次主机响应外部中断IRQ2时,显示字符串
“THIS IS A 8259A INTERRUPT!”(或其它串),中断十次后,程序退出。

三.编程提示
本实验使用PC/XT机内的8259A芯片,主机启动实际时已将8259A中断寄存器前五位初始化为00001,因此,IRQ2的中断号应为0AH。

主机IRQ2保留给用户使用,而其他外中断已由系统时钟,键盘等占用,因此,编程时要注意系统中已使用的中断请求号。

只须将IMR 寄存器中对应IRQ2的位清零,允许IRQ2中断即可。

机内8259A初始化为普通结束方式,因此,外中断结束时,必须
使用中断结束命令清除中断服务寄存器ISR中的对应位。

程序退出时,关闭IRQ2中断,即给IMR中相应位置1,禁止中断。

机系统中IRQ2硬中断为用户保留的。

编程时首先应将IRQ2对应的中断向量(中断号为0ah)保存起来,然后设置新的中断向量以指向中断处理程序。

另外,还要将中断屏蔽寄存器的相应位开放。

8.3 可编程中断控制器8259A及其应用

8.3 可编程中断控制器8259A及其应用

8259A的工作方式( 8259A的工作方式(2)——结束中断的方式 的工作方式
注意: 注意:
级连方式下,一般不用中断自动结束方式, 级连方式下,一般不用中断自动结束方式,而用 非自动结束方式。不管用哪一种非自动结束方式, 非自动结束方式。不管用哪一种非自动结束方式, 都至少连发两次中断结束命令,一次对主片, 都至少连发两次中断结束命令,一次对主片,一 次对从片。 次对从片。
(5)数据总线缓冲器 数据总线缓冲器
是双向三态8位缓冲器,用于连接系统数据总线和 8259A 内 部 总 线 , 传 递 CPU 发 送 的 控 制 信 息 , 返 回 8259A的状态信息 的状态信息
(6)读/写控制电路 读 写控制电路
Di位为 表示 中断正在服务中;为0表示没有被服务 位为1表示 中断正在服务中; 位为 表示IRi中断正在服务中 表示没有被服务
第8章 中断系统
§8.3 可编程中断控制器8259A及其应用
第8章 中断系统
中断接口8259A是可编程中断控制器, 中断接口8259A是可编程中断控制器,用于管理 8259A是可编程中断控制器 8080/8085、8086/8088、80286/80386的可屏蔽中断 8080/8085、8086/8088、80286/80386的可屏蔽中断
8.3.3
8259A中断控制器的引脚( 8259A中断控制器的引脚(1) 中断控制器的引脚
8259A是一个使用+5V电源的28脚双列直插芯片。 8259A是一个使用+5V电源的28脚双列直插芯片。 是一个使用+5V电源的28脚双列直插芯片 中断请求输入信号,一般IR ① IR0~IR7—中断请求输入信号,一般IR0优先 级最高, 最低,但优先级可由编程改变。 级最高,IRQ7最低,但优先级可由编程改变。 INT—中断请求输出信号, CPU的INTR引脚 引脚。 ② INT—中断请求输出信号,接CPU的INTR引脚。 INTA—中断响应,由此脚接收来自CPU CPU的中断 ③ INTA—中断响应,由此脚接收来自CPU的中断 响应信号。 响应信号。 ④ CS—片选,当CS有效时,该芯片工作。 CS—片选, CS有效时 该芯片工作。 有效时, ⑤ WR—写信号,有效时CPU将命令字写入8259A。 WR—写信号,有效时CPU将命令字写入8259A CPU将命令字写入8259A。

8259A中断控制器

8259A中断控制器

8259A是一个中断控制器。

在一个8259A芯片有如下几个内部寄存器:Interrupt Mask Register (IMR)Interrupt Request Register (IRR)In Sevice Register (ISR)IMR被用作过滤被屏蔽的中断;IRR被用作暂时放置未被进一步处理的Interrupt;当一个Interrupt正在被CPU处理时,此中断被放置在ISR中。

除了这几个寄存器之外,8259A还有一个单元叫做Priority Resolver,当多个中断同时发生时,Priority Resolver根据它们的优先级,将高优先级者优先传递给CPU。

当一个中断请求从IR0到IR7中的某根线到达IMR时,IMR首先判断此IR是否被屏蔽,如果被屏蔽,则此中断请求被丢弃;否则,则将其放入IRR中。

在此中断请求不能进行下一步处理之前,它一直被放在IRR中。

一旦发现处理中断的时机已到,Priority Resolver将从所有被放置于IRR中的中断中挑选出一个优先级最高的中断,将其传递给CPU去处理。

IR号越低的中断优先级别越高,比如IR0的优先级别是最高的。

8259A通过发送一个INTR(Interrupt Request)信号给CPU,通知CPU有一个中断到达。

CPU 收到这个信号后,会暂停执行下一条指令,然后发送一个INTA(Interrupt Acknowledge)信号给8259A。

8259A收到这个信号之后,马上将ISR中对应此中断请求的Bit设置,同时IRR 中相应的bit会被reset。

比如,如果当前的中断请求是IR3的话,那么ISR中的bit-3就会被设置,IRR中IR3对应的bit就会被reset。

这表示此中断请求正在被CPU处理,而不是正在等待CPU处理。

随后,CPU会再次发送一个INTA信号给8259A,要求它告诉CPU此中断请求的中断向量是什么,这是一个从0到255的一个数。

中断控制器8259A及中断服务

中断控制器8259A及中断服务

实验内容:中断控制器8259A及中断服务1、实验连线原理见图1所示:8259A连线:(1)单脉冲与时钟单元“”插孔和8259的3号中断IR3插孔相连作为中断源;(2)8259的INT连8088的INTR(Xl5);(3)8259的INTA连8088的INTA(Xl2);(4)8259的CS端接EX1(8259A端口地址是60H,61H);(5)A0→A0。

(6)IOWR→IOWR;(7)IORD→IORD;(8)连通CPU和8259A的数据总线,JX4→JX17。

8255连线:(1)将8255的A端口的PA7到PA0连接到灯L1~L8上。

图1:实验连线图2、实验原理:按动按键AN0后,单脉冲与时钟单元部件会产生“”信号,该信号的上升沿作为中断请求送8259A的IR3引脚,如果8259A没有屏蔽该级中断并且其优先级最高,8259A向CPU的INTR引脚送中断,CPU如果允许响应中断,则进入中断处理子程序,中断处理子程序向8255A的A端口送数据,将灯L1~L8点亮1秒。

3、实验要求:单片8259A以缓冲方式连接数据总线,以上升沿作为中断请求信号,中断源通过IR3引入,优先级采用一般全嵌套方式,非自动中断结束方式,引脚IR0~IR7的中断类型号为08F~0FH,编写一个汇编程序,主程序完成8255和8259A的初始化,循环等待中断请求;中断处理子程序将灯点亮1秒后熄灭。

4、端口地址:5、系统内存分配:5、程序结构:CODE SEGMENTASSUME CS:CODEMAIN PROCSTART: ;主过程;初始化8259;初始化8255;调用3号中断 MAIN ENDPINT3 PRCO……;中断处理子程序 INT3 ENDPDELAY PROC…… ;延时子过程DELAY ENDPCODE ENDSEND6、程序流程图主程序代码:PA EQU 0FF28H ;8255A端口地址标号定义 PB EQU 0FF29HPC EQU 0FF2AHPCTL EQU 0FF2BHINTPORT1 EQU 0060H ;8259控制口地址标号定义 INTPORT2 EQU 0061HCODE SEGMENTASSUME CS:CODEORG 1000HMAIN PROCSTART: CLI ;CPU关中断MOV AL,80H ;初始化8255MOV DX,0FF2BHOUT DX,ALPUSH DS ;保护DSMOV AX,0MOV DS,AXMOV DI,0B*4MOV DX,OFFSET INT3MOV WORD PTR[DI],DXMOV DX,SEG INT3MOV WORD PTR[DI+2],DXPOP DS ;恢复DSMOV AL,13H ;初始化8259AOUT 60H,ALMOV AL,08HOUT 61H,ALMOV AL,0DHout 61H,ALMOV AL,0F7HOUT DX,AL ;开放8259A中断STI ;CPU开中断HLTWATING: JMP WATING ;循环等待中断请求MAIN ENDPINT3 PROCPUSH DXPUSH AX ;保护现场STIMOV DX,PAMOV AL,00HOUT DX,AL ;灯全亮CALL DELAY1S ;延时子程序MOV AL,0FFHOUT DX,AL ;灯全灭MOV DX,INTPORT1MOV AL,20HOUT DX,AL ;送中断结束命令 CLIPOP AXPOP DX ;恢复现场MOV AL,20HOUT 60H,ALIRET ;中断返回INT3 ENDPDELAY1S PROCPUSH CXPUSH DXMOV DX,04AGAIN: MOV CX,0FFFFHDELAY: LOOP DELAYDEC DXJNZ AGAINPOP DXPOP CXRETDELAY1S ENDPCODE ENDSEND START。

第七章 中断控制器8259A

第七章 中断控制器8259A

引脚信号
INT:向CPU发出的中断请求信号,输出,与CPU的INTR端相连。
INTA:CPU给8259A的中断响应信号,输入。8259A要求两个负脉
冲的中断响应信号,第一个是CPU响应中断的信号,第二个INTA结束 后,CPU读取8259A送去的中断类型号。
CAS2~CAS0:双向级联信号线。8259A作主片时,为输出线,作从片 时,为输入线。与SP/EN配合实现8259A级联。
6/15/2019
共98页
4
开中断 关中断
可屏蔽中断的工作流程
6/15/2019
共98页
5
中断响应过程(以可屏蔽中断为例)
1、外设通过INTR向CPU发出中断请求; 2、CPU在执行完现行指令后,响应该中断请求(IF=1); 3、外设向CPU提供中断类型号; 4、CPU将PSW、CS、IP压入堆栈; 5、清除IF、TF(默认情况下为不允许中断嵌套); 6、从中断向量表中取出中断向量,置入IP、CS; 7、执行中断例程; 8、在中断例程中,如果允许中断嵌套,则开中断(STI); 9、执行IRET,从堆栈中弹出IP、CS、PSW。
MOV DX,INTOFF MOV AX,INTSEG MOV DS,AX MOV AX,2580H ;恢复系统原80H中断向量 ;注意:先设置DX,再设置DS。因为如果先改变DS, ;就不能准确获得INTOFF变量值。 INT 21H MOV AX,4C00H INT 21H
6/15/2019
共98页
INTR_PROG: PUSH STI …… CLI POP IRET
……
;中断服务子程序 AX
AX
6/15/2019
共98页
12
中断向量的设置

微机接口技术8259A中断控制器

微机接口技术8259A中断控制器

D7D0 :双向、三态数据线,接系统数据总线的 D7D0 , 用来传送控制字、状态字和中断类型号等。 IR7IR0 : 中 断 请 求 信 号 , 输 入 , 从 I/O 接 口 或 其 他 8259A( 从控制器) 上接收中断请求信号。在边沿触发方式中, IR输入应由低到高,此后保持为高,直到被响应。在电平触发
︽︾
保留的中断 (共27个) 类型号5~31
︽︾
0000:0014H 0000:0013H
CS IP
CS IP CS IP CS IP CS IP
溢出中断 断点中断
0000:0010H
0000:000FH 0000:000CH 0000:000BH
非屏蔽中断
单步中断 除数为0中断
0000:0008H
2)特殊全嵌套方式(SPECIAL FULLY NESTED MODE-SFNM)
和全嵌套方式基本相同。唯一不同在于可以响应同级 的中断请求,实现同级的中断嵌套。通过ICW4的 “SFNM”位可以设置此种方式。
特殊全嵌套方式的使用场合:级联方式中主片
8259A被设置为特殊全嵌套方式。
特殊全嵌套方式的使用场合:
ICW3 主从片关系 ICW4 方式控制
OCW2 0 1 OCW3

控制部分
yangruioot@
20
8259工作示意图
Go ahead





IR0~IR7上出现某一中断请求信号 IRR对应位被置“1” 由IMR的相应位决定是否将其屏蔽(屏蔽位=1,不通过; 屏蔽位=0,通过) 未被屏蔽的中断请求进PR,当只有一个中断时,则该中 断源向CPU发出中断请求INTR。当同时有两个以上中断 时,根据编程设定的优先级确定中断优先级最高的中断 向CPU发出中断请求INTR。若CPU正在执行中断服务程序, PR把新进入的中断请求和当前正在处理的中断进行优先 级比较。若新进入的中断优先级高,该中断请求被送到 CPU。 若CPU的IF=1,CPU完成当前指令后,响应中断,在 引脚上发出两个负脉冲(执行两个中断响应总线周期):

wfl第六章 中断2—8259

wfl第六章 中断2—8259

• 表中上半部分用于编程写入,下半部分用于查询读出。 • 其中 ICW1~ICW4 代表 初始化命令字 寄存器。 • OCW1~OCW3 代表 工作命令字 寄存器。
四、8259A 的编程 处理部分
D0 ~ D7 0 0 0 0 0 0 0 0
1、8259编程结构图
ISR 当前 中断 服务 寄存器
0 IRR 0 中断 0 申请 0 PR 寄存器 0 0 优先级 0 0 裁决器
第六章 中断系统
第四节 8259A 中断控制器
一、8259A 的结构及逻辑功能及引线 二、8259A的工作方式 三、中断响应过程 四、8259A 的编程 五、8259A 的应用举例
专用中断控制芯片8259
单片8259能管理8级中断,并且可级联管理64级 有中断判优逻辑功能,可对任一级中断单独屏蔽
中断被响应后,可直接提供中断类型号
可通过编程选择其工作方式 中断触发方式的设置 中断响应方式的设置 中断嵌套方式的设置
中断结束方式的设置
总线连接方式的设置及优先权的设置
一、8259A 的结构及逻辑功能
INTA INT
D7~D0
数据总线
缓冲器
初始化
控制逻辑
RD WR A0 CS

6、级联方式
• • • 主、从8259的ICW1中的SNGL位均应设为0 主、从8259的中断类型号不能重复 主、从8259都要对ICW3进行初始化,其初始 化数值要与硬件连接一致 主8259需要将ICW4设置成特殊全嵌套方式, 而从8259只需设置成全嵌套方式即可 如果采用非自动结束中断方式,则在中断服 务子程序最后要向主、从8259的OCW2各发 一个中断结束命令,分别清除主、从8259中 相应ISR位的值

第9章 中断系统和中断控制器8259A

第9章 中断系统和中断控制器8259A
2015-1-5
第7章 中断系统及8259A
24
二、8086/8088的中断系统
1、8086/8088的中断指令 2、8086/8088的中断分类 3、中断向量表 4、8086/8088中断处理过程
2015-1-5
第7章 中断系统及8259A
25
1、8086/8088的中断指令
(1)中断指令 指令格式: INT n ;n=0~255,中断类型码 指令操作: SP-2 → SP(修改堆栈指针), FR入栈, IF=0(中断标志置0,关中断,CPU不响应可屏蔽中 断) , TF=0(陷阱标志,TF=0,CPU正常执行程序) , SP-2 → SP (修改堆栈指针), CS入栈 SP-2 → SP (修改堆栈指针),IP入栈 [n×4] →IP [n×4+2] →CS
第7章 中断系统及8259A
16
(4)中断服务和(5)中断返回
中断服务是指CPU执行中断服务程序。
中断服务程序应包括: ①保护现场,CPU响应中断时自动保护断点, 寄存器则由程序员决定是否要入栈; ②开中断,CPU响应中断时,自动执行关中断 操作。要实现中断嵌套,必须在中断服务程序中开 中断;
2015-1-5
2015-1-5
第7章 中断系统及8259A
7
(1)实现中断及返回
* 通过设置CPU内部的中断允许触发器(IFF),开 关中断 。 当IFF=1,使中断允许(开中断); 当IFF=0,使中断不允许(关中断)。
注意: 不可屏蔽中断,要求CPU立即处理。不受中断允 许触发器(IFF)的控制。 可屏蔽中断,受中断允许触发器(IFF)的控制。
2015-1-5
第7章 中断系统及8259A
14

第8.1章 中断控制器8259A

第8.1章 中断控制器8259A
扩展至64级。
第8章 中断和DMA技术
8) 控制逻辑 在8259A的控制逻辑电路中有一组初始化命令字寄存器 ICW1~ICW4和一组操作命令字寄存器OCW1~OCW3,利用它们 通过编程设置来管理8259A的工作方式。
第8章 中断和DMA技术
2.外部引脚 • D7~D0:数据线。 • INT:中断请求,和CPU的INTR引脚相连,用来向CPU提出中 断请求。 • INTA#:中断响应,接收CPU的中断响应信号。 –8259A要求响应信号是两个连续的负脉冲。若CPU接收到 中断请求,并且允许中断,当一条指令执行完时,则在 随后的两个总线周期,INTA#引脚连续发出两个负脉冲, 到第二个负脉冲结束,则CPU读取8259A送到数据总线上 的中断类型号。 • RD#:读信号,低电平有效,通知8259A将某个寄存器的内容 送到数据总线上。 • WR#:写信号,低电平有效,通知8259A从数据线上接收数据 (即命令字)。
第8章 中断和DMA技术
8.1.2 8259A的中断过程
根据8259A的内部结构,其工作的过程如下: (1)外部中断源通过IR0-IR7输入高电平中断请求信号; (2) 外部中断源的中断请求信号使中断请求触发器IRR的相应 位置“1”,并与IMR按位相“与”,送给优先权判决电路。 (3) 优先权判决电路PR从IRR中检测出优先级最高的中断请求 位,并将其与ISR中记录的正在被CPU服务的中断进行优先级 比较。当提请的中断优先级高于正在服务的中断优先级时, 中断优先权判决电路就向控制逻辑发出有效的中断请求信号。
– 中断请求后,8259A对当前请求中断中优先权最 高的中断IRi予以响应,将其向量号送上数据总 线,对应ISR的Di位置位,直到中断结束(ISR 的Di位复位) – 在ISR的Di位置位期间,禁止再发生同级和低级 优先权的中断,但允许高级优先权中断的嵌套
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验内容:中断控制器8259A及中断服务
1、实验连线原理见图1所示:
8259A连线:
(1)单脉冲与时钟单元“”插孔和8259的3号中断IR3插孔相连作为中断源;
(2)8259的INT连8088的INTR(Xl5);
(3)8259的INTA连8088的INTA(Xl2);
(4)8259的CS端接EX1(8259A端口地址是60H,61H);
(5)A0→A0。

(6)IOWR→IOWR;
(7)IORD→IORD;
(8)连通CPU和8259A的数据总线,JX4→JX17。

8255连线:
(1)将8255的A端口的PA7到PA0连接到灯L1~L8上。

图1:实验连线图
2、实验原理:按动按键AN0后,单脉冲与时钟单元部件会产生“”信号,该信号的上升沿作为中断请求送8259A的IR3引脚,如果8259A没有屏蔽该级中断并且其优先级最高,8259A向CPU的INTR引脚送中断,CPU如果允许响应中断,则进入中断处理子程序,中断处理子程序向8255A的A端口送数据,将灯L1~L8点亮1秒。

3、实验要求:单片8259A以缓冲方式连接数据总线,以上升沿作为中断请求信号,中断源通过IR3引入,优先级采用一般全嵌套方式,非自动中断结束方式,引脚IR0~IR7的中断类型号为08F~0FH,编写一个汇编程序,主程序完成8255和8259A的初始化,循环等待中断请求;中断处理子程序将灯点亮1秒后熄灭。

4、端口地址:
5、系统内存分配:
5、程序结构:
CODE SEGMENT
ASSUME CS:CODE
MAIN PROC
START: ;主过程
;初始化8259
;初始化8255
;调用3号中断 MAIN ENDP
INT3 PRCO
……;中断处理子程序 INT3 ENDP
DELAY PROC
…… ;延时子过程
DELAY ENDP
CODE ENDS
END
6、程序流程图
主程序
代码:
PA EQU 0FF28H ;8255A端口地址标号定义 PB EQU 0FF29H
PC EQU 0FF2AH
PCTL EQU 0FF2BH
INTPORT1 EQU 0060H ;8259控制口地址标号定义 INTPORT2 EQU 0061H
CODE SEGMENT
ASSUME CS:CODE
ORG 1000H
MAIN PROC
START: CLI ;CPU关中断
MOV AL,80H ;初始化8255
MOV DX,0FF2BH
OUT DX,AL
PUSH DS ;保护DS
MOV AX,0
MOV DS,AX
MOV DI,0B*4
MOV DX,OFFSET INT3
MOV WORD PTR[DI],DX
MOV DX,SEG INT3
MOV WORD PTR[DI+2],DX
POP DS ;恢复DS
MOV AL,13H ;初始化8259A
OUT 60H,AL
MOV AL,08H
OUT 61H,AL
MOV AL,0DH
out 61H,AL
MOV AL,0F7H
OUT DX,AL ;开放8259A中断
STI ;CPU开中断
HLT
WATING: JMP WATING ;循环等待中断请求
MAIN ENDP
INT3 PROC
PUSH DX
PUSH AX ;保护现场
STI
MOV DX,PA
MOV AL,00H
OUT DX,AL ;灯全亮
CALL DELAY1S ;延时子程序
MOV AL,0FFH
OUT DX,AL ;灯全灭
MOV DX,INTPORT1
MOV AL,20H
OUT DX,AL ;送中断结束命令 CLI
POP AX
POP DX ;恢复现场
MOV AL,20H
OUT 60H,AL
IRET ;中断返回
INT3 ENDP
DELAY1S PROC
PUSH CX
PUSH DX
MOV DX,04
AGAIN: MOV CX,0FFFFH
DELAY: LOOP DELAY
DEC DX
JNZ AGAIN
POP DX
POP CX
RET
DELAY1S ENDP
CODE ENDS
END START。

相关文档
最新文档