请问汇编语言的程序中存在内存泄漏么?

lsfw 2008-03-16 03:33:50
不是特别清楚汇编语言的内存管理,似乎可以访问任何一个虚拟地址,MMU映射的,不能访问物理地址吧?
汇编程序结束时候内存回收怎么做的?操作系统怎么回收内存呢?谢谢。
...全文
316 17 打赏 收藏 举报
写回复
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyd481 2008-08-08
  • 打赏
  • 举报
回复
哇哦
学习了
majinzheng 2008-08-04
  • 打赏
  • 举报
回复
我觉得是不会出现内存泄露
要是内存泄露了那还运行什么啊
恐怕只会堆栈满,然后溢出把
哈哈
我也不懂
猜的
superdiablo 2008-08-04
  • 打赏
  • 举报
回复
汇编跟其他语言写成的程序没有本质区别,C编译一下不就成汇编了吗?汇编语言和C语言其实都没有什么内存管理,最底层的内存管理是操作系统负责的。win32汇编很大程度上就是调用winAPI。
楼上,这儿就是一个win32汇编的例子:
invoke malloc(...)
invoke free(...)
独孤过儿 2008-08-01
  • 打赏
  • 举报
回复
顺便问一下,谁自己用汇编手动的申请/释放过内存?给说一下例子
独孤过儿 2008-08-01
  • 打赏
  • 举报
回复
俺觉得不会有内存泄露的问题,栈溢出倒是很可能...
t84770 2008-08-01
  • 打赏
  • 举报
回复
汇编是可以直接操作寄存器和位的
如果编写的程序对位考虑的周到
我想不会出现楼主担心的问题
kgduwu 2008-08-01
  • 打赏
  • 举报
回复
学习了!
alan001 2008-07-31
  • 打赏
  • 举报
回复
UP,内存申请要释放
lsfw 2008-07-30
  • 打赏
  • 举报
回复
想知道汇编是否存在申请heap问题,汇编会申请堆么?
这个想法涉及不仅仅是程序,如果操作系统有内存泄露怎么检测呢?尤其OS刚刚加载的时候。
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
什么呀
UltraBejing 2008-04-30
  • 打赏
  • 举报
回复
我也想知道,正在找這方面的資料~~~~~
alan001 2008-03-18
  • 打赏
  • 举报
回复
windows下随便去掉WM_SIZE极其处理 好象会出问题
智能卡_Snooper 2008-03-17
  • 打赏
  • 举报
回复
dos下可以用中断申请内存,如果不释放,估计也会泄露。
ckc 2008-03-17
  • 打赏
  • 举报
回复
别的语言会有的问题汇编同样也会有
比如malloc实际上就是调用操作系统的某个功能来完成的,操作系统并不知道要求分配内存的是c程序还是汇编程序
汇编的程序分配了内存不释放一样会有问题
不过有必要指出:
程序结束后此程序分配的所有内存统一由操作系统释放
内存泄露是指程序运行期间的事情,比如你的程序中有个子程序,其中有malloc,子程序运行结束后却没有对应的
free,这样调用一次子程序内存就少一点,调用次数多了程序占用内存不断增加,最后就崩溃了。
如果你的子程序只调用一次,那么有malloc没有free其实也没关系,程序退出后这个内存会被操作系统释放的
lsfw 2008-03-16
  • 打赏
  • 举报
回复
如果说我通过对malloc的替换可以检测C,C++内存泄漏,对于汇编呢?是不是也同样适用。C的malloc编译成汇编后是什么语句呢?
大熊猫侯佩 2008-03-16
  • 打赏
  • 举报
回复
同样需要OS提供支持。
czlyc006 2008-03-16
  • 打赏
  • 举报
回复
可以栈溢出(不知道术语是不是这样,忘了),即堆栈框架空间分配不够时,无限循环递归会出问题。
另,内存回收机制和方法属于操作系统管辖范畴,和语言无关。
相关推荐
发帖
汇编语言

2.1w+

社区成员

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
帖子事件
创建了帖子
2008-03-16 03:33
社区公告
暂无公告