ARM7-CM3资料中执行exception前所压入的一些寄存器,有一点比较疑惑:为什么通用寄存器只压入ro~r3,我在想应用程序代码汇编后应该有可能用到r4~r7,甚至是高通用寄存器组,而且在执行exception代码也可能会用到r0~r3意外的寄存器吧,如果是的话不就会把之前的值覆盖掉,当exception返回后,不就可能导致错误吗?一般通用寄存器大体是怎么用的?有什么规范?我只知道调用子程序时r0~r3是作为参数用。
目前我还没有在ARM官方文档看到具体介绍,有没有文档对这部分内容进行介绍啊?
|