设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 2249|回复: 1
收起左侧

申请内存&释放内存空间 纯核心支持库实现不调用DLL - 支持全部释放的功能

[复制链接]
发表于 2018-10-13 20:42:41 | 显示全部楼层 |阅读模式

  1. .版本 2

  2. .程序集 程序集1

  3. .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码


  4. _临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
  5. 返回 (0)  ' 可以根据您的需要返回任意数值

  6. .子程序 _临时子程序
  7. .局部变量 地址, 整数型

  8. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  9. 地址 = 申请或释放内存 (100, 真)
  10. 写到内存 (“测试写入字符串”, 地址, -1)

  11. 输出调试文本 (指针到文本 (地址))
  12. 输出调试文本 (申请或释放内存 (地址, 假, 真))



  13. .子程序 申请或释放内存, 整数型, 公开, 申请:成功返回地址,失败返回0 释放:成功返回1,失败返回0
  14. .参数 长度或地址, 整数型, , 申请提供长度,释放提供地址
  15. .参数 申请或释放, 逻辑型, , 真为申请 假为释放,释放后不得再进行读写
  16. .参数 全部释放, 逻辑型, 可空, 此选项为真则释放所有此函数申请的内存,成功返回1,失败返回0
  17. .局部变量 内存, 字节集, 静态, "0"
  18. .局部变量 地址表, 整数型, 静态, "0"
  19. .局部变量 偏移, 整数型

  20. .如果真 (全部释放)
  21.     .如果真 (取数组成员数 (地址表) = 0)
  22.         返回 (0)
  23.     .如果真结束
  24.     重定义数组 (地址表, 假, 0)
  25.     重定义数组 (内存, 假, 0)
  26.     返回 (1)
  27. .如果真结束
  28. .如果真 (申请或释放)
  29.     .如果真 (长度或地址 ≤ 0)
  30.         返回 (0)
  31.     .如果真结束
  32.     加入成员 (内存, 取空白字节集 (长度或地址))
  33.     偏移 = 取字节集数据地址 (内存 [取数组成员数 (内存)])
  34.     加入成员 (地址表, 偏移)
  35.     返回 (偏移)
  36. .如果真结束
  37. .计次循环首 (取数组成员数 (地址表), 偏移)
  38.     .如果真 (地址表 [偏移] = 长度或地址)
  39.         删除成员 (地址表, 偏移, 1)
  40.         删除成员 (内存, 偏移, 1)
  41.         返回 (1)
  42.     .如果真结束

  43. .计次循环尾 ()
  44. 返回 (0)




  45. .子程序 取字节集数据地址, 整数型, 公开
  46. .参数 字节集, 字节集

  47. 置入代码 ({ 139, 69, 8, 139, 0, 131, 192, 8, 201, 194, 4, 0 })
  48. ' mov eax,[ebp+8]
  49. ' mov eax,[eax]
  50. ' add eax,8
  51. ' leave
  52. ' retn 4
  53. 返回 (0)
复制代码


相关帖子

发表于 2018-10-14 16:19:06 | 显示全部楼层
还有这方法啊...
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-25 08:43 , Processed in 1.099062 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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