【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
C语言内嵌汇编
文章内容学自狄泰软件学院的门徒计划
个人备忘, 供大家参考
1. 赋值代码: result = intput
#include<stdio.h>
int main(void)
{
int result = 0;
int input = 1;
asm volatile( // volatile可选, 用于禁止编译器对汇编代码进行优化
"movl %1, %0" // 汇编指令, %1相当于input, 而%0相当于result. 编译器将input和result关联到了两个适合的寄存器并通过通用寄存器间接操作变量.
// 可选参数, 用于关联C语言和汇编语言
: "=r"(result) // : "=限制符"(输出参数)
: "r"(input) // : "限制符"(输入参数)
// : 保留列表
);
printf("result = %d\n", result);
return 0;
}