标签:
int a[5];
汇编结果:没有分配内存
int a[5] = {1,2,3,4,5}
汇编结果:
movl $0x1c,0x1f(%esp)
: 把立即数1存放在esp寄存器中指向地址+0x1c的地址( 0x6afefc)中int *a = new int[3];
汇编结果:
movl $0xc,(%esp)
把立即数12存放在寄存器esp指向的地址中 int *a = new int[3];
*a = 1;
*(a+1) = 2;
*(a +2) = 3;
汇编结果:
movl $0xc,(%esp)
同上mov %eax,0x1c(%esp)
把寄存器eax的值存储在0x1c(%esp)这个地址中mov 0x1c(%esp),%eax
恢复寄存器eax的值movl $0x1,(%eax)
把立即数1存到eax寄存器指向的地址中后续步骤依次是:
标签:
原文地址:http://blog.csdn.net/quantumenergy/article/details/51365425