(36) 接着介绍 异常,异常和中断联系在一起的。在 intel 里,这俩的区别就是是否允许嵌套,区别很小的。

+

+




+

(37) 接着介绍下 为什么快速中断就是快呢?

(38) 接着介绍 arm 的异常处理流程,对于 intel 是只有中断,压入中断栈帧,跳转执行中断代码。 对于 arm ,则首先保存与修正 CPSR 寄存器,切换模式,并保存返回地址于 R14 ,查询中断向量表,跳转去执行该异常模式的代码:



+



+



(39) 进入异常模式后,首先要保存寄存器中的值:

关于返回值的修正:




+





(40) 中断返回值的修正 :



(41) 接着介绍 swi 指令的格式:


+
压栈指令如下:

(42) 软中断号的获取:

(43) 断点调试:

(44) lds 文件,用于编译:






(45) 接着介绍内联汇编:





+



(46) 混合汇编的调用标准,定义传参数标准:









(47)为什么建议在 arm 里使用结构体,这样使用的汇编指令更少,而且可以使用多寄存器传送指令,详细见 ppt:

(48)
谢谢。

被折叠的 条评论
为什么被折叠?



