(36) 接着介绍 异常,异常和中断联系在一起的。在 intel 里,这俩的区别就是是否允许嵌套,区别很小的。
+
+
+
(37) 接着介绍下 为什么快速中断就是快呢?
(38) 接着介绍 arm 的异常处理流程,对于 intel 是只有中断,压入中断栈帧,跳转执行中断代码。 对于 arm ,则首先保存与修正 CPSR 寄存器,切换模式,并保存返回地址于 R14 ,查询中断向量表,跳转去执行该异常模式的代码:
+
+
(39) 进入异常模式后,首先要保存寄存器中的值:
关于返回值的修正:
+
(40) 中断返回值的修正 :
(41) 接着介绍 swi 指令的格式:
+
压栈指令如下:
(42) 软中断号的获取:
(43) 断点调试:
(44) lds 文件,用于编译:
(45) 接着介绍内联汇编:
+
(46) 混合汇编的调用标准,定义传参数标准:
(47)为什么建议在 arm 里使用结构体,这样使用的汇编指令更少,而且可以使用多寄存器传送指令,详细见 ppt:
(48)
谢谢。