可冰

冰,是沉睡着的水......

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  37 随笔 :: 5 文章 :: 94 评论 :: 0 Trackbacks
<2006年6月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

公告


My blog is worth ¥0.00.


品味孤独......


 冰,是沉睡着的水.
 而我,却是内部含有未结冰之水的冰.外表看来似乎冰冷,而内心却犹如水一般,柔和.

这样的一块冰,
  似睡非睡,似醒非醒......
  似强非强,似弱非弱......
  似刚非刚,似柔非柔......


剑如飞 心如水
也隔不断相思泪
歌不悔 心还醉
究竟是为谁

爱若苦 心无顾
谁拿爱情一生赌
翅断了 碟儿飞了
化作一世深缘故


黄金色的树林里分出两条路,
可惜我们不能同时去涉足,
但我们却选择了,
人迹罕至的那一条,
这从此决定了
我们的一生.

常用链接

留言簿(7)

随笔分类(18)

随笔档案(37)

文章分类(5)

文章档案(5)

相册

朋友的博客

收藏

我的博客组

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

  在汇编中,用CALL调用子程序时,处理器要保存当前的状态.但具体地来说,它会保存哪些寄存器的值呢?
首先保存的应该就是返回地址了吧,但这一过程可不可以用其它代码来显式的实现呢?也就是用push or mov等将它所做的工作代替,这样可能吗?

  另外,C/C++中的局部变量是在哪里分配的呢?我记得好像是在堆上,但不太清楚了.这一过程在汇编中是如何实现的呢?看过了C的反汇编代码还是没搞清楚啊.

posted on 2005-09-19 12:57 可冰 阅读(465) 评论(4)  编辑 收藏 引用 所属分类: Assembly

评论

# re: 学汇编想到的一些问题 2005-09-19 15:31 moonriver
C/C++中的局部变量是在哪里分配的呢?我记得好像是在堆上?

不可能吧!!!!   回复  更多评论
  

# re: 学汇编想到的一些问题 2005-09-19 18:22 可冰
哦,我查了一下,局部变量是在栈上的.
是我记错了,动态分配的空间才是从堆上分配.  回复  更多评论
  

# re: 学汇编想到的一些问题 2005-09-20 17:03 kevinlee
局部变量是在Stack上分配的,你看函数入口地方一般都有 修改 esp 的操作。  回复  更多评论
  

# re: 学汇编想到的一些问题 2005-09-20 18:30 可冰
9: int main()
10: {
0041F540 push ebp
0041F541 mov ebp,esp
0041F543 push 0FFFFFFFFh
0041F545 push offset __ehhandler$_main (45638Bh)
0041F54A mov eax,dword ptr fs:[00000000h]
0041F550 push eax
0041F551 mov dword ptr fs:[0],esp
0041F558 sub esp,17Ch
0041F55E push ebx
0041F55F push esi
0041F560 push edi
0041F561 lea edi,[ebp-188h]
0041F567 mov ecx,5Fh
0041F56C mov eax,0CCCCCCCCh
0041F571 rep stos dword ptr [edi]
     11: //wifstream wf( "utf8.txt" );
     12: std::wifstream wf;
0041F573 push 1
0041F575 lea ecx,[wf]
0041F57B call std::basic_ifstream<unsigned short,std::char_traits<unsigned short> >::basic_ifstream<unsigned short,std::char_traits<unsigned short> > (41D285h)
0041F580 mov dword ptr [ebp-4],0

是啊,这里有对esp,edi,ebp等的操作,但我不明白这是什么意思;-( 我还没学32位下的汇编呢.
  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理