GCC 内联汇编 格式及代码
来源:互联网 发布:linux nfs nobody 编辑:程序博客网 时间:2024/06/06 09:02
#include <stdio.h>
int main()
{
int a = 100, b = 0;
__asm__ __volatile__( "movl %3, %%eax;/n/r"
"movl %%eax, %0;/n/r" /* %0 用来表示 输出的a变量 对应声明:"=r"(a)*/
"movl %2, %%eax;/n/r" /* %2用来表示 输入的a变量 对应声明:"r"(a)*/
"movl %%eax, %0;/n/r"
:"=r"(a),"=r"(b) /* 声明变量 a ,b 为输出,程序段结束后,该值将变更*/
:"r"(a),"r"(b) /* 声明变量 a ,b 为输入,用来在程序中输入,在此也可以不用再次声明这两个变量 在此仅属于示例说明用输入功能的*/
:"%eax"); /* 声明eax将变被更*/
printf("Result: %d, %d/n", a, b);
return 0;
}
限定符 意义 "m"、"v"、"o" 内存单元 "r" 任何寄存器 "q" 寄存器eax、ebx、ecx、edx之一 "i"、"h" 直接操作数 "E"和"F" 浮点数 "g" 任意 "a"、"b"、"c"、"d" 分别表示寄存器eax、ebx、ecx和edx "S"和"D" 寄存器esi、edi "I" 常数(0至31) 输入约束和输出约束的不同点在于输出约束多一个约束修饰符'='
- GCC 内联汇编 格式及代码
- gcc内联汇编
- GCC内联汇编基础
- GCC内联汇编
- GCC内联汇编入门
- GCC内联汇编基础
- GCC内联汇编
- Gcc内联汇编1
- Gcc内联汇编2
- GCC内联汇编基础
- gcc内联汇编入门
- GCC 内联汇编
- GCC内联汇编基础
- gcc内联汇编
- GCC 内联汇编测试
- GCC内联汇编
- GCC 内联汇编
- GCC内联汇编
- 交叉线的制作
- 工作流模型分析---聚合模型
- 一个简单的冒泡排序和快速排序算法java实现
- 诺顿误杀百万电脑 尚未作赔偿声明
- DataTable导为Excel
- GCC 内联汇编 格式及代码
- 使用VMware虚拟机迁移现有的服务器及网络(1)
- 首款加密中国芯研制成功 将在科博会上亮相
- 使用NUnit在.Net编程中进行单元测试
- 得到文件的版本号
- JComboBox的removeAllItems()方法我遇到的一个异常以及解决
- 使用VMware虚拟机迁移现有的服务器及网络(2)
- SQL Server数据导入、导出需要注意的问题
- 调用Excel中的宏