一段代码的堆栈平衡

[复制链接]
查看11 | 回复2 | 2011-1-29 05:39:50 | 显示全部楼层 |阅读模式
主程序:
push x
push y
call myadd
mov ecx,eax
;最终返回值在ecx中
-------------------------------------------------
myadd函数:
push ebp
mov ebp,esp
sub esp,4
mov ebx,[ebp+0C]
mov ecx,[ebp+8]
add ebx,ecx
mov [ebp-4],ebx
mov eax,[ebp-4]
mov esp,ebp
add esp,4
ret
------------------------------------------
怎么看都不平衡啊。。
请帮忙在代码后写上注释,谢谢!我是初学者~

回复

使用道具 举报

千问 | 2011-1-29 05:39:50 | 显示全部楼层
HashTable 键值对啊..就是类似于你说的例子.一个健只能对应一个值.而一般作为key只能对应一个object.那么这个object就可以任意java类型了啊..这个就不说了..key一般使用都是用的string类型的.也可以是其他类型.但是不能是基础数据类型..key必须是对象..而且key不要重复.重复了会覆盖原有的key对应的值..这个你可以试试..打印顺序就是你说的.先进先除.还是后进先出..但是原理应该和数组是一样的.对于hashtable的使用你写了一种方法迭代key还有通过迭代器来对keyset进行迭代获取hashtable中所有的key在通过get的方法获取值//基本用法参照jdoc.. 1.5文档中介绍pub
回复

使用道具 举报

千问 | 2011-1-29 05:39:50 | 显示全部楼层
分析如下:主程序:push xpush y
;这压入两个参数call myadd;调用前压入返回地址mov ecx,eax
;最终返回值在ecx中-------------------------------------------------myadd函数:push ebp ;再压入EBPmov
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行