- 论坛徽章:
- 0
|
int main()
{
int *pi;
int a;
pi = &a;
}
08048344 <main>:
8048344: 8d 4c 24 04 lea 0x4(%esp),%ecx
8048348: 83 e4 f0 and $0xfffffff0,%esp
804834b: ff 71 fc pushl -0x4(%ecx)
804834e: 55 push %ebp
804834f: 89 e5 mov %esp,%ebp
8048351: 51 push %ecx
8048352: 83 ec 10 sub $0x10,%esp
8048355: 8d 45 f4 lea -0xc(%ebp),%eax
8048358: 89 45 f8 mov %eax,-0x8(%ebp)
804835b: 83 c4 10 add $0x10,%esp
804835e: 59 pop %ecx
804835f: 5d pop %ebp
8048360: 8d 61 fc lea -0x4(%ecx),%esp
我汇编都忘的差不多了,
lea -0xc(%ebp),%eax
mov %eax,-0x8(%ebp)
基本上就应该对应pi = &a;
LZ有点钻牛角尖了
原帖由 baozhao 于 2008-5-29 16:06 发表 ![]()
把&a是否是常量的问题先搁在一边。
5是整数,也有值,但5不是object。 (我所知道的object都是需要空间的,而不是类似汇编中的立即数直接嵌入指令中)
所以,整个问题的关键是object该做何解?
[ 本帖最后由 ypxing 于 2008-5-29 16:29 编辑 ] |
|