设为首页收藏本站帮助中心
查看: 167|回复: 0
收起左侧

易语言MASM置入代码实现日期时间型数组/子程序指针数组 转换到字节集数据(返回字节集)

[复制链接]
发表于 2020-8-20 17:42:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?加入我们

x
1.png

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

  3. .程序集 程序集1

  4. .子程序 _启动子程序, 整数型


  5. _临时子程序 ()
  6. 返回 (0)

  7. .子程序 _临时子程序
  8. .局部变量 A, 日期时间型, , "10"
  9. .局部变量 B, 子程序指针, , "0"
  10. .局部变量 计数, 整数型

  11. .计次循环首 (取数组成员数 (A), 计数)
  12.     A [计数] = 增减时间 (取现行时间 (), 8, 取随机数 (, ) × 取随机数 (, ))
  13. .计次循环尾 ()
  14. B = { &A, &B, &C, &D, &E, &F, &G, &H, &I, &J }
  15. 调试输出 (A)
  16. 调试输出 (到字节集_日期时间型数组 (A))
  17. 调试输出 (B)
  18. 调试输出 (到字节集_子程序指针数组 (B))



  19. .子程序 到字节集_日期时间型数组, 字节集, 公开, 核心库5.7的 到字节集() 不支持日期时间型数组,使用此方法可将日期时间型数组转换到字节集
  20. .参数 日期时间型数组, 日期时间型, 数组
  21. .局部变量 返回值, 字节集

  22. 返回值 = 取空白字节集 (左移 (取数组成员数 (日期时间型数组), 3))
  23. 置入代码 ({ 80, 83, 81, 82, 86, 139, 69, 8, 11, 192, 117, 2, 235, 53, 139, 0, 11, 192, 117, 2, 235, 45, 139, 88, 4, 129, 251, 0, 0, 0, 128, 114, 2, 235, 32, 131, 192, 8, 51, 201, 139, 117, 252, 131, 198, 8, 235, 15, 139, 20, 200, 137, 20, 206, 139, 84, 200, 4, 137, 84, 206, 4, 65, 59, 203, 114, 237, 94, 90, 89, 91, 88 })
  24. ' push eax
  25. ' push ebx
  26. ' push ecx
  27. ' push edx
  28. ' push esi
  29. ' mov eax,[ebp+8]
  30. ' .if !eax
  31. ' jmp ASM_END
  32. ' .endif
  33. ' mov eax,[eax]
  34. ' .if !eax
  35. ' jmp ASM_END
  36. ' .endif
  37. ' mov ebx,[eax+4]
  38. ' .if ebx >= 80000000H
  39. ' jmp ASM_END
  40. ' .endif
  41. ' add eax,8
  42. ' xor ecx,ecx
  43. ' mov esi,[ebp-4]
  44. ' add esi,8
  45. ' .while ecx < ebx
  46. ' mov edx,[eax+ecx*8]
  47. ' mov [esi+ecx*8],edx
  48. ' mov edx,[eax+ecx*8+4]
  49. ' mov [esi+ecx*8+4],edx
  50. ' inc ecx
  51. ' .endw
  52. ' ASM_END:
  53. ' pop esi
  54. ' pop edx
  55. ' pop ecx
  56. ' pop ebx
  57. ' pop eax
  58. 返回 (返回值)


  59. .子程序 到字节集_子程序指针数组, 字节集, 公开, 核心库5.7的 到字节集() 不支持子程序指针数组,使用此方法可将子程序指针数组转换到字节集
  60. .参数 子程序指针数组, 子程序指针, 数组
  61. .局部变量 返回值, 字节集

  62. 返回值 = 取空白字节集 (左移 (取数组成员数 (子程序指针数组), 2))
  63. 置入代码 ({ 80, 83, 81, 82, 86, 139, 69, 8, 11, 192, 117, 2, 235, 45, 139, 0, 11, 192, 117, 2, 235, 37, 139, 88, 4, 129, 251, 0, 0, 0, 128, 114, 2, 235, 24, 131, 192, 8, 51, 201, 139, 117, 252, 131, 198, 8, 235, 7, 139, 20, 136, 137, 20, 142, 65, 59, 203, 114, 245, 94, 90, 89, 91, 88 })
  64. ' push eax
  65. ' push ebx
  66. ' push ecx
  67. ' push edx
  68. ' push esi
  69. ' mov eax,[ebp+8]
  70. ' .if !eax
  71. ' jmp ASM_END
  72. ' .endif
  73. ' mov eax,[eax]
  74. ' .if !eax
  75. ' jmp ASM_END
  76. ' .endif
  77. ' mov ebx,[eax+4]
  78. ' .if ebx >= 80000000H
  79. ' jmp ASM_END
  80. ' .endif
  81. ' add eax,8
  82. ' xor ecx,ecx
  83. ' mov esi,[ebp-4]
  84. ' add esi,8
  85. ' .while ecx < ebx
  86. ' mov edx,[eax+ecx*4]
  87. ' mov [esi+ecx*4],edx
  88. ' inc ecx
  89. ' .endw
  90. ' ASM_END:
  91. ' pop esi
  92. ' pop edx
  93. ' pop ecx
  94. ' pop ebx
  95. ' pop eax

  96. 返回 (返回值)

  97. .子程序 A



  98. .子程序 B



  99. .子程序 C



  100. .子程序 D



  101. .子程序 E



  102. .子程序 F



  103. .子程序 G



  104. .子程序 H



  105. .子程序 I



  106. .子程序 J



复制代码

相关帖子

这个小可爱很神秘,什么都没留下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则