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

从F到0 - From F to 0

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

易语言MASM置入代码实现字节集变量 (字节型数组) 倒序/翻转/反转/颠倒处理 (无返回值)

[复制链接]
发表于 2020-4-4 17:27:31 | 显示全部楼层 |阅读模式
111.png

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

  3. .程序集 程序集1

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


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

  7. .子程序 _临时子程序
  8. .局部变量 数据, 字节集
  9. .局部变量 数组, 字节型, , "0"

  10. 数据 = { 1, 2, 3, 4, 5, 6, 7 }
  11. 字节集_倒序 (数据)
  12. 调试输出 (数据)
  13. 数组 = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 10 }
  14. 字节型数组_倒序 (数组)
  15. 调试输出 (数组)


  16. .子程序 字节集_倒序, , 公开
  17. .参数 数据, 字节集, 参考

  18. 置入代码 ({ 80, 83, 81, 82, 86, 139, 69, 8, 11, 192, 117, 2, 235, 47, 139, 0, 11, 192, 117, 2, 235, 39, 139, 88, 4, 11, 219, 117, 2, 235, 30, 131, 192, 8, 139, 203, 209, 233, 75, 51, 246, 235, 14, 138, 20, 6, 138, 52, 3, 136, 52, 6, 136, 20, 3, 75, 70, 59, 241, 114, 238, 94, 90, 89, 91, 88 })
  19. ' push eax
  20. ' push ebx
  21. ' push ecx
  22. ' push edx
  23. ' push esi
  24. ' mov eax,[ebp+8]
  25. ' .if !eax
  26. ' jmp ASM_END
  27. ' .endif
  28. ' mov eax,[eax]
  29. ' .if !eax
  30. ' jmp ASM_END
  31. ' .endif
  32. ' mov ebx,[eax+4]
  33. ' .if !ebx
  34. ' jmp ASM_END
  35. ' .endif
  36. ' add eax,8
  37. ' mov ecx,ebx
  38. ' shr ecx,1
  39. ' dec ebx
  40. ' xor esi,esi
  41. ' .while esi < ecx
  42. ' mov dl,[eax+esi]
  43. ' mov dh,[eax+ebx]
  44. ' mov [eax+esi],dh
  45. ' mov [eax+ebx],dl
  46. ' dec ebx
  47. ' inc esi
  48. ' .endw
  49. ' ASM_END:
  50. ' pop esi
  51. ' pop edx
  52. ' pop ecx
  53. ' pop ebx
  54. ' pop eax


  55. .子程序 字节型数组_倒序, , 公开
  56. .参数 数据, 字节型, 参考 数组

  57. 置入代码 ({ 80, 83, 81, 82, 86, 139, 69, 8, 11, 192, 117, 2, 235, 47, 139, 0, 11, 192, 117, 2, 235, 39, 139, 88, 4, 11, 219, 117, 2, 235, 30, 131, 192, 8, 139, 203, 209, 233, 75, 51, 246, 235, 14, 138, 20, 6, 138, 52, 3, 136, 52, 6, 136, 20, 3, 75, 70, 59, 241, 114, 238, 94, 90, 89, 91, 88 })
  58. ' push eax
  59. ' push ebx
  60. ' push ecx
  61. ' push edx
  62. ' push esi
  63. ' mov eax,[ebp+8]
  64. ' .if !eax
  65. ' jmp ASM_END
  66. ' .endif
  67. ' mov eax,[eax]
  68. ' .if !eax
  69. ' jmp ASM_END
  70. ' .endif
  71. ' mov ebx,[eax+4]
  72. ' .if !ebx
  73. ' jmp ASM_END
  74. ' .endif
  75. ' add eax,8
  76. ' mov ecx,ebx
  77. ' shr ecx,1
  78. ' dec ebx
  79. ' xor esi,esi
  80. ' .while esi < ecx
  81. ' mov dl,[eax+esi]
  82. ' mov dh,[eax+ebx]
  83. ' mov [eax+esi],dh
  84. ' mov [eax+ebx],dl
  85. ' dec ebx
  86. ' inc esi
  87. ' .endw
  88. ' ASM_END:
  89. ' pop esi
  90. ' pop edx
  91. ' pop ecx
  92. ' pop ebx
  93. ' pop eax

复制代码

相关帖子

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

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-4-20 15:09 , Processed in 0.502029 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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