更改用户名CRC32解密回帖奖励召回投票记录删除领夜猫子帮助中心 本站已运行
查看: 119|回复: 0
收起左侧

易语言置入代码比较两个字节集数组成员数,成员长度是否一致(数据不比较,返回逻辑型)

[复制链接]
发表于 2019-7-23 21:32:53 | 显示全部楼层 |阅读模式

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

您需要 登录 才可以下载或查看,没有帐号?注册有礼

x

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

  3. .程序集 程序集1

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


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

  7. .子程序 _临时子程序
  8. .局部变量 A, 字节集, , "3"
  9. .局部变量 B, 字节集, , "3"

  10. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。

  11. A [1] = { 1, 2, 3, 4, 5 }
  12. A [2] = { 1, 2, 3 }
  13. A [3] = { 5 }
  14. B [1] = { 6, 6, 6, 6, 6 }
  15. B [2] = { 7, 7, 7 }
  16. B [3] = { 4 }
  17. 调试输出 (字节集数组_成员数与成员长度是否一致 (A, B))


  18. A [1] = { 1, 2, 3, 4, 5 }
  19. A [2] = { 1, 2, 3 }
  20. A [3] = { 5 }
  21. B [1] = { 6, 6, 6, 6, 6 }
  22. B [2] = { 7, 7, 7 }
  23. B [3] = { 4, 7 }
  24. 调试输出 (字节集数组_成员数与成员长度是否一致 (A, B))
  25. A [1] = {  }
  26. A [2] = {  }
  27. A [3] = {  }
  28. B [1] = {  }
  29. B [2] = {  }
  30. B [3] = {  }
  31. 调试输出 (字节集数组_成员数与成员长度是否一致 (A, B))
  32. 重定义数组 (A, 真, 2)
  33. 重定义数组 (B, 真, 2)
  34. 调试输出 (字节集数组_成员数与成员长度是否一致 (A, B))
  35. 重定义数组 (A, 真, 1)
  36. 调试输出 (字节集数组_成员数与成员长度是否一致 (A, B))

  37. .子程序 字节集数组_成员数与成员长度是否一致, 逻辑型, 公开, 比较两个字节集数组数据是否一致前应使用此函数比较成员长度以节省时间,本函数不比较字节集成员数据
  38. .参数 数组A, 字节集, 参考 数组, 数组A的成员数与数组B的成员数必须一致,成员1长度5字节,则成员2长度必须5字节,以此类推。
  39. .参数 数组B, 字节集, 参考 数组, 所有字节集成员的数据地址必须真实有效(赋值空字节集后生效),否则将崩溃。

  40. 置入代码 ({ 83, 81, 82, 86, 87, 139, 69, 8, 139, 0, 139, 93, 12, 139, 27, 139, 72, 4, 139, 83, 4, 131, 192, 8, 131, 195, 8, 59, 202, 116, 4, 51, 192, 235, 32, 51, 201, 235, 19, 139, 52, 136, 139, 60, 139, 139, 118, 4, 59, 119, 4, 116, 4, 51, 192, 235, 10, 65, 59, 202, 114, 233, 184, 1, 0, 0, 0, 95, 94, 90, 89, 91, 201, 194, 8, 0 })
  41. ' push ebx
  42. ' push ecx
  43. ' push edx
  44. ' push esi
  45. ' push edi
  46. ' mov eax,[ebp+8]
  47. ' mov eax,[eax]
  48. ' mov ebx,[ebp+12]
  49. ' mov ebx,[ebx]
  50. ' mov ecx,[eax+4]
  51. ' mov edx,[ebx+4]
  52. ' add eax,8
  53. ' add ebx,8
  54. ' .if ecx != edx
  55. ' xor eax,eax
  56. ' jmp ASM_END
  57. ' .endif
  58. ' xor ecx,ecx
  59. ' .while ecx < edx
  60. ' mov esi,[eax+ecx*4]
  61. ' mov edi,[ebx+ecx*4]
  62. ' mov esi,[esi+4]
  63. ' .if esi != [edi+4]
  64. ' xor eax,eax
  65. ' jmp ASM_END
  66. ' .endif
  67. ' inc ecx
  68. ' .endw
  69. ' mov eax,1
  70. ' ASM_END:
  71. ' pop edi
  72. ' pop esi
  73. ' pop edx
  74. ' pop ecx
  75. ' pop ebx
  76. ' leave
  77. ' retn 8

  78. 返回 (假)
复制代码

相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册有礼

本版积分规则