ASM如何实现动态分配内存?

golden_alvin 2002-07-29 09:28:23
在C和C++中可以使用malloc和new实现内存的动态分配,那么在回汇编语言中如何实现呢?
...全文
79 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
parade 2002-07-31
  • 打赏
  • 举报
回复
我在看,但是很多不明白。以后请多多帮助。
nikitar 2002-07-31
  • 打赏
  • 举报
回复
d
once_a_day 2002-07-31
  • 打赏
  • 举报
回复
GlobalAlloc
GlobalLock
GlobalFree
我只用过这三个,其他不会用。谁可以讲一讲VirtualAlloc,HeapAlloc,HeapCreate,HeapFree
这些东东怎么用?
firewings 2002-07-31
  • 打赏
  • 举报
回复
有没有其他方法呢?
wowocock 2002-07-30
  • 打赏
  • 举报
回复
其实不管什么版本WINDOWS,最终还是要到操作系统服务例程,KERNEL,USER。GDI等DLL还是要通过系统才能实现相应的任务,可以看看WINDOWS操作系统原理
一书,里面说的很明白。
Hume 2002-07-30
  • 打赏
  • 举报
回复
最后当然是中断,比如int 0x40或者int 0x2e就是操作系统服务例程
vBin 2002-07-30
  • 打赏
  • 举报
回复
当然,不管用什么API,一直追到底还是到了底层。
parade 2002-07-30
  • 打赏
  • 举报
回复
wowocock,我想问一下WIN32下面的内存分配是否最终还是调用了中断。就是VirtualAlloc,HeapAlloc,HeapCreate,HeapFree,以及内存映射等函数,是否最终还是会调用中断呢。

dos下与内存有关的其他字参数:
AH=
48H,分配内存
49H,释放已分配的
4AH,修改已分配的内存
58H,这个我不知道
59H,得到内存分配错误代码。这些都是书上的,希望对golden_alvin有帮助。
这是我第一篇文章。请多多关照。
紫郢剑侠 2002-07-29
  • 打赏
  • 举报
回复
对16位的DOS下的ASM可调用DOS中断服务程序,中断号俺记不得了。
对32位的WINDOWS下的ASM调用API函数就行了。具体可看ICZ的教程。MASM32包含有这些教程。
wowocock 2002-07-29
  • 打赏
  • 举报
回复
WIN32下分配内存一般有3种方法
1,虚拟内存就是用VirtualAlloc,不用了就是用VirtualFree吧!VirtualLock等
2,堆函数,用HeapAlloc,HeapCreate,HeapFree
3,内存影射文件,createfile,CreateFileMapping,MapViewOfFile,
UnmapViewOfFile
Areslee 2002-07-29
  • 打赏
  • 举报
回复
DOS : int 21h with ah=48H
Dozemin 2002-07-29
  • 打赏
  • 举报
回复
32的使用VirtualAlloc,不用了就是用VirtualFree吧!

16的DOS下的嘛,我倒不清楚

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧