在"MSP430优化 C/C++编译器用户指南"(SLAU132X)的第134页上、有一段内容。
如果 C/C++中断例程不调用任何其他函数、则只保存和恢复中断处理程序使用的寄存器。 但是、如果 C/C++中断例程调用了其他函数、这些函数可以修改中断处理程序不使用的未知寄存器。 因此、如果调用了任何其他函数、例程会保存所有调用保存寄存器。 (这不包括分组寄存器。) 不要 直接调用中断处理函数。
在我看来、这一段所讨论的是调用函数或不调用函数的 ISR、以及对这些情形需要注意的事项。 我对这方面的了解有点少、所以对我来说很模糊。 我对该段有这些问题。 有人能给我讲些什么吗?
- 在第一句中、
- 它是指所有寄存器、包括 CPU 寄存器、
- "保存这些寄存器"是否意味着它们的数据被保存到程序执行堆栈、和
- "恢复这些寄存器"是否意味着它们的数据从程序执行堆栈中恢复?
- 在第三句中、
- 什么是调用保存寄存器、和
- "如果调用了任何其他函数、例程会保存所有调用保存寄存器、这意味着什么?"
- 在第四句中、什么是分组寄存器?