程序执行过程中,发生了指令预取中止异常,那么异常返回时,执行的指令是什么?为什么是这样的指令?
时间: 2023-04-03 12:00:38 浏览: 196
当发生指令预取中止异常时,异常返回时执行的指令是引起异常的指令的下一条指令。这是因为在异常发生时,CPU已经预取了下一条指令,但由于异常的发生,这条指令无法执行,因此在异常返回时,CPU会重新执行引起异常的指令的下一条指令。
相关问题
名词解释:哈佛体系结构、中断源、波特率、冯诺伊曼体系结构、指令预取中止异常、数据中止异常、寄存器间接寻址、堆栈、立即数寻址、寄存器寻址、嵌入式系统(国内普遍认同的定义)、指令周期
1. 哈佛体系结构:一种计算机体系结构,其特点是指令存储器和数据存储器分开,分别使用不同的总线进行访问,使得指令和数据可以同时进行读写,提高了系统运行效率。
2. 中断源:指计算机系统中可以引起中断的硬件或软件原因,如硬件故障、外设请求等。
3. 波特率:指单位时间内传输的比特数,是衡量串行通信速率的指标。
4. 冯诺伊曼体系结构:一种计算机体系结构,其特点是指令和数据共用同一总线进行访问,程序和数据都存储在同一存储器中,使得程序可以按照顺序执行。
5. 指令预取中止异常:指CPU在执行指令时,发现下一条指令无法预取(如跳转指令),导致预取中止并产生异常。
6. 数据中止异常:指CPU在执行指令时,访问数据存储器时发现数据无法访问或不符合要求,导致数据访问中止并产生异常。
7. 寄存器间接寻址:一种寻址方式,指使用寄存器中存储的地址来访问内存中的数据。
8. 堆栈:一种数据结构,用于存储程序执行时的临时数据和返回地址。
9. 立即数寻址:一种寻址方式,指将指令中的立即数作为操作数。
10. 寄存器寻址:一种寻址方式,指直接使用寄存器中的数据作为操作数。
11. 嵌入式系统:指嵌入到其他产品中的计算机系统,一般具有小型化、低功耗、高可靠性等特点。
12. 指令周期:指CPU执行一条指令所需的时间,包括取指令、译码、执行、访存等阶段。
3、请分析下表中不同的异常返回指令偏移不同的原因。 异常或入口 返回指令 返回地址 未定义的指令 MOVS PC,R14_und R14 预取指中止 SUBS PC,R14_abt,#4 R14-4 中断 SUBS PC,R14_irq,#4 R14-4 数据中止 SUBS PC,R14_abt,#8 R14-8
在ARM体系结构中,异常处理分为两种:中断(Interrupt)和异常(Exception)。其中,中断是由外部设备触发的异步事件,而异常是由指令执行引起的同步事件。
在ARM处理器执行异常处理程序时,需要从异常模式(Exception Mode)返回到原来的执行模式。为了实现这一过程,需要使用异常返回指令(Exception Return Instruction)将程序计数器(PC)置为返回地址。不同的异常或入口对应不同的异常返回指令和返回地址,具体如下:
1. 未定义的指令异常(Undefined Instruction Exception):当ARM处理器遇到未定义的指令时,会触发该异常。在异常处理程序中,需要使用MOVS PC,R14_und指令将PC置为R14_und的值,返回地址为R14。
2. 预取指中止异常(Prefetch Abort Exception):当ARM处理器无法从内存中预取指令时,会触发该异常。在异常处理程序中,需要使用SUBS PC,R14_abt,#4指令将PC置为R14_abt-4的值,返回地址为R14-4。
3. 中断异常(Interrupt Exception):当外部设备触发中断时,会触发该异常。在异常处理程序中,需要使用SUBS PC,R14_irq,#4指令将PC置为R14_irq-4的值,返回地址为R14-4。
4. 数据中止异常(Data Abort Exception):当ARM处理器无法从内存中读取或写入数据时,会触发该异常。在异常处理程序中,需要使用SUBS PC,R14_abt,#8指令将PC置为R14_abt-8的值,返回地址为R14-8。
因为不同的异常或入口对应不同的异常返回指令和返回地址,所以偏移量也不相同。
阅读全文