社区
汇编语言
帖子详情
win32 asm 如何像C语言的malloc一样 申请内存空间呢?
aiyaya730
2011-10-21 12:21:03
想用win32 asm实现一个动态的链表,
需要动态地申请内存.
请问WIN32 ASM 如何申请内存呢?
是不是用 VirtualAlloc这个API ?
另外
C 的malloc ,C++ 的 new
在Windows上的本质,是调用 API 申请内存的么?
API申请内存的本质,是调用中断么?
我这么理解对么?
...全文
224
6
打赏
收藏
win32 asm 如何像C语言的malloc一样 申请内存空间呢?
想用win32 asm实现一个动态的链表, 需要动态地申请内存. 请问WIN32 ASM 如何申请内存呢? 是不是用 VirtualAlloc这个API ? 另外 C 的malloc ,C++ 的 new 在Windows上的本质,是调用 API 申请内存的么? API申请内存的本质,是调用中断么? 我这么理解对么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
aiyaya730
2011-10-21
打赏
举报
回复
谢谢楼上回复!
请问
GlobalAlloc()根
VirtualAlloc()有什么区别呢?
我在看罗云彬那本书,
把各种Alloc都介绍了一遍,
但是到最后我也没太明白,我想动态分配内存的时候具体应该用哪个.
书里还说内存Lock和UnLock的问题
我在想,C语言里也从来没提过内存是不是Lock
我如果作个简单的应用,
是不是可以不必考虑 Lock和不 Lock 的问题呢?
zara
2011-10-21
打赏
举报
回复
用 GlobalAlloc() 吧,省事儿;况且,现在的内存资源,富裕得很,远不似上古期那般紧张。
aiyaya730
2011-10-21
打赏
举报
回复
好吧.谢谢楼上各位的帮助.
晚上有空的时候我试试!
killbug2004
2011-10-21
打赏
举报
回复
用malloc的话有两种方法
1、先自己在代码里面声明函数原型,然后直接调用
malloc Proto C :DWord
free Proto C :DWord
2、使用masm32这个包里面声明好的invoke crt_malloc、invoke crt_free
include msvcrt.inc
includelib msvcrt.lib
这些是运行msvcrt中的运行时函数,也可以直接使用VirtualAlloc,GloableAlloc,HeapAlloc这些系统API,
可参考MSDN
aiyaya730
2011-10-21
打赏
举报
回复
谢谢楼上!
你的意思是,
在汇编里,也可以
invoke malloc这个函数马?
gsy999
2011-10-21
打赏
举报
回复
[Quote=引用楼主 korekara88730 的回复:]
想用win32 asm实现一个动态的链表,
需要动态地申请内存.
请问WIN32 ASM 如何申请内存呢?
是不是用 VirtualAlloc这个API ?
另外
C 的malloc ,C++ 的 new
在Windows上的本质,是调用 API 申请内存的么?
API申请内存的本质,是调用中断么?
我这么理解对么?
[/Quote]
可以有多种方法申请和施放内存
如果使用 MSVCRT.DLL 库,可以使用下面两个函数:
malloc 申请内存 (对应C++的 new)
free 释放 (C++所用的)
具体用法可参见MSDN的文档。
--------------
罗云彬《Win32汇编...》一书所讲的方法也可使用,直接调用 Win32 API。
win32
asm
贪食蛇
最近> 这本书看了一些章节了. 自从讲完GDI那章,往下就是通用对话框了. 通用对话框那章看起来很没意思,就跳着看了看.... 但是控件那章的窗口子类化,和...再后面,讲的是内存和文件,再再后面,是DLL和HOOK. 各个章节都扫了
初探从C到
Win32
汇编之系列一
此系列仅为初学者在直接编写
Win32
汇编程序时提供一点思路。 为什么要编写
Win32
汇编程序,直接C不好么?这种问题不想做过多的解释。 我只想写写我在编写这些汇编程序时遇到的困难,并且告诉大家我是怎么解决的,...
FFmpeg源代码简单分析-通用- 内存的分配和释放(av_
malloc
()、av_free()等)
FFmpeg源代码简单分析-通用- 内存的分配和释放(av_
malloc
()、av_free()等)
【笔记】使用
C语言
编写
win32
平台Shellcode
转自:http://www.tuicool.com/articles/eMJfaea —... Word2003部分 例子: /* void *get_kernel32_base() { __
asm
{ push ebp xor ecx,ecx mov esi,fs:0x30 ; //fs:30为PEB指针 mov esi, [esi + 0x0C
内存溢出(out of memory)和内存泄露(memory leak)的区别和检测工具方法
内存溢出 out of memory,是指程序在
申请
内存时,没有足够的
内存空间
供其使用,出现out of memory;比如
申请
了一个integer,但给它存了long才能存下的数,那就是内存溢出。 内存泄露 memory leak,是指程序在
申请
...
汇编语言
21,453
社区成员
41,602
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章