ZHCU820Y September 2004 – June 2021
在优化代码中使用 asm(内联汇编)语句时必须非常小心。编译器会重新排列代码段,自由使用寄存器,并可以彻底删除变量或表达式。尽管编译器从不会优化 asm 语句(除非无法访问),但插入了汇编代码的周围环境可能与原始 C/C++ 源代码会有很大的不同。
使用 asm 语句来操作硬件控制(例如中断屏蔽)通常是安全的做法,但是试图与 C/C++ 环境进行交互或访问 C/C++ 变量的 asm 语句可能会产生意想不到的结果。编译后,检查汇编输出以确保 asm 语句正确并保持程序的完整性。