硬件中断结束后程序是怎么处理的?

来源:百度知道 编辑:UC知道 时间:2024/05/19 00:15:25
比如用int 16h后,中断结束后是接着运行此指令的下一条指令。但是硬件中断结束后主程序是怎么运行?是从程序入口重新执行还是什么情况?

返回的时候和软中断一样,在执行的过程中遇到硬件中断源的话,保存现场,执行完硬中断再回到打断的地方,但在返回之前和软中断不一样
软中断要返回的时候用一条iret指令就行了,但硬件中断在返回之前还要通知中断控制芯片硬中断已经结束,具体用以下两条指令实现:

mov al, 20h ;8259
out 20h, al ;end of interrupt

如果不在iret之前添上这两条指令的话,硬中断是不会返回的