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

从F到0 - From F to 0

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

易语言汇编置入代码版 取字节集内长整数() / 置字节集内长整数() (带是否反转字节序)

[复制链接]
发表于 2019-7-6 11:11:20 | 显示全部楼层 |阅读模式

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

  3. .程序集 程序集1

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


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

  7. .子程序 _临时子程序
  8. .局部变量 字节集, 字节集
  9. .局部变量 长整数, 长整数型

  10. 字节集 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }
  11. 长整数 = 取字节集内长整数 (字节集, 0)



  12. 置字节集内长整数 (字节集, 2, 长整数, 真)
  13. 调试输出 (字节集)

  14. .子程序 取字节集内长整数, 长整数型, 公开, 与 取字节集内整数 () 功能相同
  15. .参数 待处理的字节集, 字节集
  16. .参数 欲获取长整数所处偏移, 整数型, , 严禁负数或越界否则会取出错误的数据
  17. .参数 是否反转字节序, 逻辑型, 可空

  18. 置入代码 ({ 86, 87, 81, 139, 125, 8, 139, 63, 131, 199, 8, 139, 117, 12, 139, 4, 62, 139, 84, 62, 4, 138, 77, 16, 128, 249, 1, 117, 5, 232, 7, 0, 0, 0, 89, 95, 94, 201, 194, 16, 0, 134, 196, 193, 192, 16, 134, 196, 134, 214, 193, 194, 16, 134, 214, 146, 195 })
  19. ' push esi
  20. ' push edi
  21. ' push ecx
  22. ' mov edi,[ebp+8]
  23. ' mov edi,[edi]
  24. ' add edi,8
  25. ' mov esi,[ebp+12]
  26. ' mov eax,[edi+esi]
  27. ' mov edx,[edi+esi+4]
  28. ' mov cl,[ebp+16]
  29. ' .if cl == 1
  30. ' call RLB
  31. ' .endif
  32. ' pop ecx
  33. ' pop edi
  34. ' pop esi
  35. ' leave
  36. ' retn 16
  37. ' RLB:
  38. ' xchg al,ah
  39. ' rol eax,16
  40. ' xchg al,ah
  41. ' xchg dl,dh
  42. ' rol edx,16
  43. ' xchg dl,dh
  44. ' xchg eax,edx
  45. ' ret

  46. 返回 (0)


  47. .子程序 置字节集内长整数, , 公开, 与 置字节集内整数 () 功能相同
  48. .参数 待处理的字节集, 字节集
  49. .参数 欲设置长整数所处偏移, 整数型, , 严禁负数或越界否则会造成程序异常
  50. .参数 欲设置的长整数值, 长整数型
  51. .参数 是否反转字节序, 逻辑型, 可空

  52. 置入代码 ({ 96, 139, 125, 8, 139, 63, 131, 199, 8, 139, 117, 12, 139, 69, 16, 139, 85, 20, 138, 77, 24, 128, 249, 1, 117, 5, 232, 12, 0, 0, 0, 137, 4, 62, 137, 84, 62, 4, 97, 201, 194, 20, 0, 134, 196, 193, 192, 16, 134, 196, 134, 214, 193, 194, 16, 134, 214, 146, 195 })
  53. ' pushad
  54. ' mov edi,[ebp+8]
  55. ' mov edi,[edi]
  56. ' add edi,8
  57. ' mov esi,[ebp+12]
  58. ' mov eax,[ebp+16]
  59. ' mov edx,[ebp+20]
  60. ' mov cl,[ebp+24]
  61. ' .if cl == 1
  62. ' call RLB
  63. ' .endif
  64. ' mov [edi+esi],eax
  65. ' mov [edi+esi+4],edx
  66. ' popad
  67. ' leave
  68. ' retn 20
  69. ' RLB:
  70. ' xchg al,ah
  71. ' rol eax,16
  72. ' xchg al,ah
  73. ' xchg dl,dh
  74. ' rol edx,16
  75. ' xchg dl,dh
  76. ' xchg eax,edx
  77. ' ret

复制代码

相关帖子

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

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-4-24 21:08 , Processed in 1.169067 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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