如何解决内联汇编,破坏列表?
给定内联汇编中的以下代码:
int rand = 4;
asm volatile ("movl %0,%%eax"
:
: "b" (rand)
: "eax"
);
虽然我读到在 clobbered 列表中写“eax”会告诉编译器在以后的命令中不要使用 %eax,但仍有一些事情不清楚:
-
在编译器可以使用 back
%eax
之前,仅仅无休止地阻塞它是没有意义的。 -
使用
%eax
有什么问题?例如,如果在我的汇编代码之后有以下内容:mov %eax,%ebx # moving from %eax to %ebx
编译器将如何改变它?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。