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

从F到0 - From F to 0

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

易语言汇编MASM置入代码解决处理字节集数组造成程序崩溃的方法 (操作该类型必须执行)

[复制链接]
发表于 2020-1-16 23:34:30 | 显示全部楼层 |阅读模式
本帖最后由 EAX 于 2020-1-16 23:38 编辑


  1. .版本 2
  2. .支持库 spec

  3. .程序集 程序集1

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


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

  7. .子程序 _临时子程序
  8. .局部变量 A, 字节集, , "5"

  9. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  10. A [1] = {  }
  11. A [2] = {  }
  12. A [3] = { 1 }

  13. A [5] = {  }


  14. 字节集数组_汇编初始化 (A)
  15. 调试输出 (A)

  16. .子程序 字节集数组_汇编初始化, , 公开, 所有字节集数组每次使用置入代码处理前必须使用该函数初始化使指针真实有效,否则将可能造成程序崩溃!
  17. .参数 字节集数组, 字节集, 参考 数组
  18. .局部变量 计数, 整数型

  19. 置入代码 ({ 96, 139, 69, 8, 139, 0, 139, 88, 4, 131, 192, 8, 51, 201, 235, 13, 139, 20, 136, 11, 210, 117, 5, 137, 85, 252, 235, 13, 65, 59, 203, 114, 239, 184, 1, 0, 0, 0, 137, 69, 252, 97 })
  20. ' pusha
  21. ' mov eax,[ebp+8]
  22. ' mov eax,[eax]
  23. ' mov ebx,[eax+4]
  24. ' add eax,8
  25. ' xor ecx,ecx
  26. ' .while ecx < ebx
  27. ' mov edx,[eax+ecx*4]
  28. ' .if edx == 0
  29. ' mov [ebp-4],edx
  30. ' jmp ASM_END
  31. ' .endif
  32. ' inc ecx
  33. ' .endw
  34. ' mov eax,1
  35. ' mov [ebp-4],eax
  36. ' ASM_END:
  37. ' popa

  38. .如果真 (计数 = 0)
  39.     .计次循环首 (取数组成员数 (字节集数组), 计数)
  40.         .如果真 (取字节集长度 (字节集数组 [计数]) = 0)
  41.             字节集数组 [计数] = {  }
  42.         .如果真结束

  43.     .计次循环尾 ()
  44. .如果真结束

复制代码
1.PNG

相关帖子

您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-4-27 20:06 , Processed in 0.758043 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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