幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2491|回复: 1

[通用编程] [x86 asm/dasm] new运算符的实现问题, 汇编高手进

[复制链接]

23

主题

218

帖子

2470

积分

⑥精研

积分
2470
发表于 2007-12-26 11:31:18 | 显示全部楼层 |阅读模式
  1. loc_4939DE:
  2. mov     eax, [esp+0D45Ch+var_D450]
  3. inc       eax
  4. push   eax
  5. call      j_??2@YAPAXI@Z  ; operator new(uint)
  6. add     esp, 4
  7. cmp    eax, ebx                                                            ; // ebx=0
  8. mov     [esp+0D45Ch+var_D448], eax
  9. jz          short loc_49398D                                          ; return 0
复制代码

1、请问这里call的是new运算符,还是new[]运算符?(俺觉得是new[])
2、new和new[]应该是需要创建之对象的大小用于计算分配多少内存的,这个大小怎么传给new和new[]?用寄存器?
ONScripter for PSP/Windows中文版 http://blog.163.com/john_he_
回复

使用道具 举报

50

主题

742

帖子

402

积分

版主

自定义头衔

Rank: 7Rank: 7Rank: 7

积分
402
发表于 2007-12-26 19:41:17 | 显示全部楼层
operator new调用的还是malloc嘛
- -
偶认为只要传递了大小就可以,对象的大小应该在更早的时候计算进去了罢?否则那个乘法在哪里??
Style-C
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-30 11:43 , Processed in 0.020427 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表