中断服务程序的最后一条指令是RET或RETI对吗?

中断服务程序的最后一条指令是RET或RETI对吗?,第1张

指令是RET,RET是子程序返回指令,返回到调用该子程序处的下一条指令执行,返回的地址是从RET执行前的SP中最后两个值。

DELAY:MOV R7,#250 (6)250-->R7。

D1:MOV R6,#250 (7)250--->R6。

D2:DJNZ R6,D2 (8)(R6-1),等于零执行下一条,不等于零,则跳转到D2。

DJNZ R7,D1 (9)(R7-1),等于零执行下一条,不等于零,则跳转到D1。

扩展资料:

RET分辨率增强技术的意思。有RET功能的打印机,可以使打印出来的图形几乎没有锯齿,一台400×400DPI的激光打印机,如果有RET功能,其打印效果可以与600×600DPI的激光打印机想媲美。

但是CS值不变,即CS一直指向code segment这个段(这个功能是通过assume cs:code实现的),程序转移到code segment段的开头的第一条语句,即mov ax,4c00h,然后调用int 21h结束程序。

可嵌套中断服务程序内的几个步骤分别是:

1、中断响应的事前准备:

系统要想能够应对各种不同的中断信号,总的来看就是需要知道每种信号应该由哪个中断服务程序负责以及这些中断服务程序具体是如何工作的。系统只有事前对这两件事都知道得很清楚,才能正确地响应各种中断信号和异常。

2、CPU检查是否有中断/异常信号:

CPU在执行完当前程序的每一条指令后,都会去确认在执行刚才的指令过程中中断控制器(如:8259A)是否发送中断请求过来,如果有那么CPU就会在相应的时钟脉冲到来时从总线上读取中断请求对应的中断向量

3、根据中断向量到IDT表中取得处理这个向量的中断程序的段选择符:

CPU根据得到的中断向量到IDT表里找到该向量对应的中断描述符,中断描述符里保存着中断服务程序的段选择符。

4、根据取得的段选择符到GDT中找相应的段描述符:

CPU使用IDT查到的中断服务程序的段选择符从GDT中取得相应的段描述符,段描述符里保存了中断服务程序的段基址和属性信息,此时CPU就得到了中断服务程序的起始地址。

5、CPU根据特权级的判断设定即将运行的中断服务程序要使用的栈的地址:

CPU会根据CPL和中断服务程序段描述符的DPL信息确认是否发生了特权级的转换,比如当前程序正运行在用户态。

而中断程序是运行在内核态的,则意味着发生了特权级的转换,这时CPU会从当前程序的TSS信息(该信息在内存中的首地址存在TR寄存器中)里取得该程序的内核栈地址。

6、保护当前程序的现场:

CPU开始利用栈保护被暂停执行的程序的现场:依次压入当前程序使用的eflags,cs,eip,errorCode(如果是有错误码的异常)信息。

7、跳转到中断服务程序的第一条指令开始执行:

CPU利用中断服务程序的段描述符将其第一条指令的地址加载到cs和eip寄存器中,开始执行中断服务程序。这意味着先前的程序被暂停执行,中断服务程序正式开始工作。

8、中断服务程序处理完毕,恢复执行先前中断的程序:

在每个中断服务程序的最后,必须有中断完成返回先前程序的指令,这就是iret(或iretd)。程序执行这条返回指令时,会从栈里d出先前保存的被暂停程序的现场信息,即eflags,cs,eip重新开始执行。

中断服务程序流程是:

1、保护现场:保护现场有两个含义,其一是保存程序的断点其二是保存通用寄存器和状态寄存器的内容。

2、中断服务(设备服务):这是中断服务程序的主体部分,对于不同的中断请求源,其中断服务 *** 作内容是不同的。

3、恢复现场:这是中断服务程序的结尾部分,要求在退出服务程序前,将原程序中断时的“现场”恢复至原来的寄存器中。

4、中断返回:中断服务程序的最后一条指令通常是–条中断返回指令,使其返回到原程序的断点处,以信继续执行原程序。

中断就是执行中断服务程序,这是中断系统的核心。不同计算机系统的中断处理过程各具特色,但对多数计算机而言,其中中断服务程序的流程如下。 中断处理过程基本上由3部分组成,第一部分为准备部分,其基本功能是保护现场,对于非向量中断方式则需要确定中断源,最后开放中断,允许更高级的中断请求打断低级的中断服务程序;第二部分为处理部分,即真正执行具体的为某个中断源服务的中断服务程序;第三部分为结尾部分,首先要关中断,以防止在恢复现场过程中被新的中断请求打断,接着恢复现场,然后开放中断,以便返回原来的程序后可响应其他的中断请求。中断服务程序的最后一条指令一定是中断返回指令。

一个完整的中断过程包括:

中断请求:是指中断源(引起中断的事件或设备)向CPU

 发出的请求中断的要求。

中断判优:当有多个中断源发出请求时,需要通过适当的办法决定先处理哪个中断请求;

中断响应:指CPU中止现行程序转至中断服务程序的过程;

中断处理:就是指CPU执行中断服务程序;

中断返回:   执行完中断服务程序后,返回到被中断的程序

 

中断的作用:

(1)CPU与I/O设备并行工作

(2)硬件故障处理

(3)实现人机联系:在计算机工作过程中,如果用户要干预机器,如查看计算的中间结果,了解机器的工作状态,给机器下达临时性的命令等。在没有中断系统的计算机里这些功能几乎是无法实现的。

(4)实现多道程序和分时 *** 作

(5)实现实时处理

(6)实现应用程序和 *** 作系统的联系

(7)多处理机系统各处理机间的联系


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7758055.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-09
下一篇2023-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存