4 Star 42 Fork 26

孟宁/linuxkernel

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
assembly64_in_C.c 673 Bytes
一键复制 编辑 原始数据 按行查看 历史
mengning 提交于 2020-04-25 19:35 +08:00 . assembly example code
#include <stdio.h>
int main()
{
/* val1+val2=val3 */
unsigned long val1 = 1;
unsigned long val2 = 2;
unsigned long val3 = 0;
printf("val1:%ld,val2:%ld,val3:%ld\n",val1,val2,val3);
asm volatile(
"movq $0,%%rax\n\t" /* clear %rax to 0*/
"addq %1,%%rax\n\t" /* %rax += val1 */
"addq %2,%%rax\n\t" /* %rax += val2 */
"movq %%rax,%0\n\t" /* val2 = %rax*/
: "=m" (val3) /* output =m mean only write output memory variable*/
: "g" (val1),"g" (val2) /* input g mean Choose any one Register */
);
printf("val1:%ld+val2:%ld=val3:%ld\n",val1,val2,val3);
return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mengning997/linuxkernel.git
git@gitee.com:mengning997/linuxkernel.git
mengning997
linuxkernel
linuxkernel
master

搜索帮助