ZHCUAV8W january 1998 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
只要遵循 节 6.4 中定义的调用惯例,以及 节 6.3 中定义的寄存器惯例,即可同时使用 C/C++ 与汇编语言函数。C/C++ 代码可访问变量并调用使用汇编语言定义的函数,汇编代码也可访问 C/C++ 变量并调用 C/C++ 函数。
结合使用汇编语言和 C 时,请遵循以下指南:
如果通常使用 SP,则无需显式保留。换而言之,汇编函数可自由使用栈,只要在函数返回前将压入栈的全部内容弹出即可(因此要保留 SP)。
非专用寄存器可自由使用,无需首先保存。
请记住,函数可改变未保留的任何寄存器,而且不必恢复该寄存器。如果这些寄存器中有任何内容需要在不同调用间保留,则必须显式保存它们。
同理,若要从汇编语言中访问 C/C++ 函数或对象,应在汇编语言模块中使用 .ref 或 .global 指令来声明 C/C++ 对象。这样可创建未声明的外部引用,并由链接器解析。