AT&T汇编学习中的疑惑

lidedongsn 2013-07-18 10:05:43

1 #include <stdio.h>
2 const int temp = 269;
3 #define MAX_NUM 100
4 int main()
5 {
6 int i;
7 int a[MAX_NUM];
8 int *p;
9 int *q;
10 q = a;
11 asm("movq %1,%%rax; \
12 movq %%rax,%0; \
13 movq %0,%%rdi; \
14 movq temp,%%rdx; \
15 movq $10,%%rcx; \
16 loop_begin: \
17 movq %%rdx,(%%rdi); \
18 addq $4,%%rdi; \
19 subq $1,%%rcx; \
20 jnz loop_begin; \
21 "
22 :"=p"(p)
23 :"p"(a));
24 for (i = 0; i < 20; i++)
25 {
26 printf("%d\t", p[i]);
27 }
28 printf("\n");
29 return 0;
30 }


请问 输出结果是什么啊?怎么跟我设想的不一样呢?汇编段功能是什么?
...全文
68 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧