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

易语言MASM汇编置入代码实现指针到(整数型/小数型/子程序指针)数组(无返回值)

[复制链接]
发表于 2020-8-21 16:56:48 | 显示全部楼层 |阅读模式

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

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

x
1.png

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

  3. .程序集 程序集1

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


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

  7. .子程序 _临时子程序
  8. .局部变量 A, 整数型, , "0"
  9. .局部变量 B, 字节集
  10. .局部变量 C, 整数型
  11. .局部变量 D, 整数型, , "0"
  12. .局部变量 E, 小数型, , "0"
  13. .局部变量 F, 小数型, , "0"
  14. .局部变量 G, 子程序指针, , "0"

  15. A = { 12345, 23456, -3456789, 45678901 }
  16. B = 到字节集 (A)
  17. C = 取变量数据地址 (B)
  18. 指针到整数型数组 (C, 4, D)
  19. 指针到子程序指针数组 (C, 4, G)
  20. F = { #pi, #e, 123.456, -234.567 }
  21. B = 到字节集 (F)
  22. C = 取变量数据地址 (B)
  23. 指针到小数型数组 (C, 4, E)
  24. 调试输出 (E)
  25. 调试输出 (D)
  26. 调试输出 (G)


  27. .子程序 指针到整数型数组, , 公开
  28. .参数 内存数据指针, 整数型
  29. .参数 数组成员数, 整数型
  30. .参数 返回数组, 整数型, 参考 数组

  31. 重定义数组 (返回数组, 真, 数组成员数)
  32. 置入代码 ({ 80, 83, 81, 86, 87, 139, 125, 8, 139, 117, 12, 139, 93, 16, 139, 27, 131, 195, 8, 51, 201, 235, 7, 139, 4, 143, 137, 4, 139, 65, 59, 206, 114, 245, 95, 94, 89, 91, 88 })
  33. ' push eax
  34. ' push ebx
  35. ' push ecx
  36. ' push esi
  37. ' push edi
  38. ' mov edi,[ebp+8]
  39. ' mov esi,[ebp+12]
  40. ' mov ebx,[ebp+16]
  41. ' mov ebx,[ebx]
  42. ' add ebx,8
  43. ' xor ecx,ecx
  44. ' .while ecx < esi
  45. ' mov eax,[edi+ecx*4]
  46. ' mov [ebx+ecx*4],eax
  47. ' inc ecx
  48. ' .endw
  49. ' pop edi
  50. ' pop esi
  51. ' pop ecx
  52. ' pop ebx
  53. ' pop eax


  54. .子程序 指针到小数型数组, , 公开
  55. .参数 内存数据指针, 整数型
  56. .参数 数组成员数, 整数型
  57. .参数 返回数组, 小数型, 参考 数组

  58. 重定义数组 (返回数组, 真, 数组成员数)
  59. 置入代码 ({ 80, 83, 81, 86, 87, 139, 125, 8, 139, 117, 12, 139, 93, 16, 139, 27, 131, 195, 8, 51, 201, 235, 7, 139, 4, 143, 137, 4, 139, 65, 59, 206, 114, 245, 95, 94, 89, 91, 88 })
  60. ' push eax
  61. ' push ebx
  62. ' push ecx
  63. ' push esi
  64. ' push edi
  65. ' mov edi,[ebp+8]
  66. ' mov esi,[ebp+12]
  67. ' mov ebx,[ebp+16]
  68. ' mov ebx,[ebx]
  69. ' add ebx,8
  70. ' xor ecx,ecx
  71. ' .while ecx < esi
  72. ' mov eax,[edi+ecx*4]
  73. ' mov [ebx+ecx*4],eax
  74. ' inc ecx
  75. ' .endw
  76. ' pop edi
  77. ' pop esi
  78. ' pop ecx
  79. ' pop ebx
  80. ' pop eax


  81. .子程序 指针到子程序指针数组, , 公开
  82. .参数 内存数据指针, 整数型
  83. .参数 数组成员数, 整数型
  84. .参数 返回数组, 子程序指针, 参考 数组

  85. 重定义数组 (返回数组, 真, 数组成员数)
  86. 置入代码 ({ 80, 83, 81, 86, 87, 139, 125, 8, 139, 117, 12, 139, 93, 16, 139, 27, 131, 195, 8, 51, 201, 235, 7, 139, 4, 143, 137, 4, 139, 65, 59, 206, 114, 245, 95, 94, 89, 91, 88 })
  87. ' push eax
  88. ' push ebx
  89. ' push ecx
  90. ' push esi
  91. ' push edi
  92. ' mov edi,[ebp+8]
  93. ' mov esi,[ebp+12]
  94. ' mov ebx,[ebp+16]
  95. ' mov ebx,[ebx]
  96. ' add ebx,8
  97. ' xor ecx,ecx
  98. ' .while ecx < esi
  99. ' mov eax,[edi+ecx*4]
  100. ' mov [ebx+ecx*4],eax
  101. ' inc ecx
  102. ' .endw
  103. ' pop edi
  104. ' pop esi
  105. ' pop ecx
  106. ' pop ebx
  107. ' pop eax

复制代码

相关帖子

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

使用道具 举报

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

本版积分规则