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

从F到0 - From F to 0

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

易语言数值大小端转换模块源码 支持短整数型、整数型、长整数型 (数组)的极速转换

[复制链接]
发表于 2018-10-11 08:36:21 | 显示全部楼层 |阅读模式

  1. .版本 2

  2. .程序集 数值大小端转换模块

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


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

  6. .子程序 _临时子程序



  7. .子程序 短整数型_大小端转换, 短整数型, 公开
  8. .参数 短整数, 短整数型

  9. 置入代码 ({ 184, 0, 0, 0, 0, 102, 139, 69, 8, 134, 196, 201, 194, 4, 0 })
  10. ' mov eax,0
  11. ' mov ax,[ebp+8]
  12. ' xchg al,ah
  13. ' leave
  14. ' retn 4
  15. 返回 (0)

  16. .子程序 整数型_大小端转换, 整数型, 公开
  17. .参数 整数, 整数型

  18. 置入代码 ({ 139, 69, 8, 134, 196, 193, 192, 16, 134, 196, 201, 194, 4, 0 })
  19. ' mov eax,[ebp+8]
  20. ' xchg al,ah
  21. ' rol eax,16
  22. ' xchg al,ah
  23. ' leave
  24. ' retn 4
  25. 返回 (0)

  26. .子程序 长整数型_大小端转换, 长整数型, 公开
  27. .参数 长整数, 长整数型

  28. 置入代码 ({ 139, 69, 8, 139, 85, 12, 134, 196, 193, 192, 16, 134, 196, 134, 214, 193, 194, 16, 134, 214, 146, 201, 194, 8, 0 })
  29. ' mov eax,[ebp+8]
  30. ' mov edx,[ebp+12]
  31. ' xchg al,ah
  32. ' rol eax,16
  33. ' xchg al,ah
  34. ' xchg dl,dh
  35. ' rol edx,16
  36. ' xchg dl,dh
  37. ' xchg eax,edx
  38. ' leave
  39. ' retn 8

  40. 返回 (0)

  41. .子程序 短整数型数组_大小端转换, , 公开
  42. .参数 短整数数组, 短整数型, 数组

  43. 置入代码 ({ 96, 139, 69, 8, 139, 16, 139, 66, 4, 131, 194, 8, 187, 0, 0, 0, 0, 235, 11, 102, 139, 12, 90, 134, 205, 102, 137, 12, 90, 67, 59, 216, 114, 241, 97 })
  44. ' pushad
  45. ' mov eax,[ebp+8]
  46. ' mov edx,[eax]
  47. ' mov eax,[edx+4]
  48. ' add edx,8
  49. ' mov ebx,0
  50. ' .while ebx<eax
  51. ' mov cx,[edx+ebx*2]
  52. ' xchg cl,ch
  53. ' mov [edx+ebx*2],cx
  54. ' inc ebx
  55. ' .endw
  56. ' popad


  57. .子程序 整数型数组_大小端转换, , 公开
  58. .参数 整数数组, 整数型, 数组

  59. 置入代码 ({ 96, 139, 69, 8, 139, 16, 139, 66, 4, 131, 194, 8, 187, 0, 0, 0, 0, 235, 14, 139, 12, 154, 134, 205, 193, 193, 16, 134, 205, 137, 12, 154, 67, 59, 216, 114, 238, 97 })
  60. ' pushad
  61. ' mov eax,[ebp+8]
  62. ' mov edx,[eax]
  63. ' mov eax,[edx+4]
  64. ' add edx,8
  65. ' mov ebx,0
  66. ' .while ebx<eax
  67. ' mov ecx,[edx+ebx*4]
  68. ' xchg cl,ch
  69. ' rol ecx,16
  70. ' xchg cl,ch
  71. ' mov [edx+ebx*4],ecx
  72. ' inc ebx
  73. ' .endw
  74. ' popad


  75. .子程序 长整数型数组_大小端转换, , 公开
  76. .参数 长整数数组, 长整数型, 数组

  77. 置入代码 ({ 96, 139, 69, 8, 139, 16, 139, 66, 4, 131, 194, 8, 187, 0, 0, 0, 0, 235, 32, 80, 139, 4, 218, 139, 76, 218, 4, 134, 196, 193, 192, 16, 134, 196, 134, 205, 193, 193, 16, 134, 205, 145, 137, 4, 218, 137, 76, 218, 4, 88, 67, 59, 216, 114, 220, 97 })
  78. ' pushad
  79. ' mov eax,[ebp+8]
  80. ' mov edx,[eax]
  81. ' mov eax,[edx+4]
  82. ' add edx,8
  83. ' mov ebx,0
  84. ' .while ebx<eax
  85. ' push eax
  86. ' mov eax,[edx+ebx*8]
  87. ' mov ecx,[edx+ebx*8+4]
  88. ' xchg al,ah
  89. ' rol eax,16
  90. ' xchg al,ah
  91. ' xchg cl,ch
  92. ' rol ecx,16
  93. ' xchg cl,ch
  94. ' xchg eax,ecx
  95. ' mov [edx+ebx*8],eax
  96. ' mov [edx+ebx*8+4],ecx
  97. ' pop eax
  98. ' inc ebx
  99. ' .endw
  100. ' popad
复制代码


评分

1

查看全部评分

相关帖子

发表于 2018-10-11 12:32:08 | 显示全部楼层
方法不错,谢谢分享
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-4-26 17:57 , Processed in 1.811104 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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