gcc内联汇编的一个注意点儿
来源:互联网 发布:360度全景照片 知乎 编辑:程序博客网 时间:2024/04/28 18:18
《Linux内核情景分析》举了一个内联汇编的例子:
这个例子的作用就是做 v->counter += i;
根据汇编指令 addl source, destination, 执行完毕后,destination = destination + source。因此我很不明白为什么上面的内联汇编的输入部分需要包含"m"(v->counter),照我来看,汇编代码addl %1, %0里并没有使用"m"(v->counter)(这个用%2来指代),因此这个"m"(v->counter)是完全不需要的。输入部分只要写"ir"(i)就够了
因此写了段汇编自己验证一下想法:
代码中只用到了%1, %0,因此输入部分里的"m"(i), "i"(3)都是不起作用的。gcc只管汇编语句中用到的%0, %1,可不管没用到的%2("m"(i)), %3("i"(3))
难道原始书写者的意思是用来更清晰描述哪些是输入?(从v->counter += i;语句来看v->counter = v->counter + i, v->counter的确也是个输入)
- gcc内联汇编的一个注意点儿
- [原创]gcc内联汇编语法的一个缺陷
- [转载]arm下的gcc内联汇编
- arm下的gcc内联汇编
- [编译环境][gcc]下的内联汇编
- 最牛X的GCC 内联汇编
- 最牛X的GCC 内联汇编
- gcc内联汇编
- GCC内联汇编基础
- GCC内联汇编
- GCC内联汇编入门
- GCC内联汇编基础
- GCC内联汇编
- Gcc内联汇编1
- Gcc内联汇编2
- GCC内联汇编基础
- gcc内联汇编入门
- GCC 内联汇编
- Serializable 接口
- CSS 怎么让弹出层位于鼠标下面
- 解决windows2003下iis服务运行asp提示“HTTP 错误 404 - 文件或目录未找到”
- 中英文编码
- DHTMLX Tree中文开发指导
- gcc内联汇编的一个注意点儿
- JAVA中使用Schema校验XML
- 堆和栈的区别(转过无数次的文章)
- Exception:java.lang.NoSuchFieldError: TRACE
- 更改数据库对象所有者
- struts2中if标签
- 愁呀
- HTTP下载
- gcc扩展中的宏定义中用 "#" 和 "##"