能力值:
( LV2,RANK:10 )
|
-
-
2 楼
对于书上的方式我的问题是:1.在调用函数之前不是要先保护好返回地址么?2.eax ebx 在进入aProc之前已经赋值,而且调用的时候使用了USES EAX EBX 这是否应该先把参数保存呢?
先谢谢大侠们的赐教了
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
书上是正确的。首先你没理解invoke和uses隐含的操作,其次你在顺序中有误解。
1 先压参数(2222,1111),再压返回地址。这个是由invoke实现的。至此共压入3个
2 接下来是例行惯例push ebp与mov ebp,esp。至此共压入4个
3 接下来是给局部变量在栈上分配空间,即aaaa和bbbb的地址空间。至此共6个
4 接下来保存eax和ebx(ebebebeb和eaeaeaea)。这个是由USES实现的。至此共8个
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
学习学习,好好努力
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
lz不是现在在看IBM汇编么?为虾米我刚开始学的时候,子程序调用没遇见过invoke等伪指令呀。参数传递、堆栈平衡都是手动完成的。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
向大家学习,支持看雪
|
|
|