我是内联装配的新手,而且我无法将我的思绪包裹在“破坏者列表”中。是否有人能够提供一个简单的解释,说明何时以及为什么将寄存器添加到clobber列表很重要?具体来说,在这个例子中......
volatile int a = 0;
asm (
"ldi r26, 42 \n"
"sts (a), r26 \n"
: : : "r26"
);
...是保护以前存储在r26中的意外删除的clbber列表,还是保护刚写入r26的数据不被编译器忽略?也许两者都是?
另外,断言“纯汇编”编程中不需要clobber列表是正确的吗?