免费邀请码更改用户名CRC32解密2.0回帖奖励召回投票记录删除领夜猫子帮助中心 本站已运行
搜索
查看: 53|回复: 1
收起左侧

易语言MASM置入代码比较两个文本型数组成员数与内容是否相同/等于/一致 (返回逻辑型)

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

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

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

x

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

  3. .程序集 程序集1

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


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

  7. .子程序 _临时子程序
  8. .局部变量 A, 文本型, , "0"
  9. .局部变量 B, 文本型, , "0"

  10. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  11. A = { “Hello World!”, “中文测试”, “1234567890” }
  12. B = { “Hello World!”, “中文测试”, “1234567890” }
  13. 调试输出 (文本数组_等于 (A, B))
  14. A = { “Hello World1”, “中文测试”, “1234567890” }
  15. B = { “Hello World!”, “中文测试”, “1234567890” }
  16. 调试输出 (文本数组_等于 (A, B))
  17. A = { “Hello World”, “中文测试”, “1234567890” }
  18. B = { “Hello World!”, “中文测试”, “1234567890” }
  19. 调试输出 (文本数组_等于 (A, B))

  20. A = { “Hello World”, “”, “1234567890” }
  21. B = { “Hello World”, “”, “1234567890” }
  22. 调试输出 (文本数组_等于 (A, B))
  23. 重定义数组 (A, 假, 0)
  24. 重定义数组 (B, 假, 0)
  25. 调试输出 (文本数组_等于 (A, B))



  26. .子程序 文本数组_等于, 逻辑型, 公开
  27. .参数 数组A, 文本型, 数组
  28. .参数 数组B, 文本型, 数组

  29. 置入代码 ({ 83, 81, 82, 86, 87, 85, 139, 117, 8, 139, 54, 139, 125, 12, 139, 63, 139, 111, 4, 57, 110, 4, 116, 4, 51, 192, 235, 39, 131, 198, 8, 131, 199, 8, 51, 219, 235, 20, 139, 4, 158, 139, 20, 159, 232, 28, 0, 0, 0, 10, 201, 117, 4, 51, 192, 235, 10, 67, 59, 221, 114, 232, 184, 1, 0, 0, 0, 93, 95, 94, 90, 89, 91, 201, 194, 8, 0, 80, 82, 83, 138, 24, 58, 26, 116, 6, 177, 0, 235, 14, 235, 8, 10, 219, 117, 4, 177, 1, 235, 4, 64, 66, 235, 232, 91, 90, 88, 195 })
  30. ' push ebx
  31. ' push ecx
  32. ' push edx
  33. ' push esi
  34. ' push edi
  35. ' push ebp
  36. ' mov esi,[ebp+8]
  37. ' mov esi,[esi]
  38. ' mov edi,[ebp+12]
  39. ' mov edi,[edi]
  40. ' mov ebp,[edi+4]
  41. ' .if [esi+4] != ebp
  42. ' xor eax,eax
  43. ' jmp ASM_END
  44. ' .endif
  45. ' add esi,8
  46. ' add edi,8
  47. ' xor ebx,ebx
  48. ' .while ebx < ebp
  49. ' mov eax,[esi+ebx*4]
  50. ' mov edx,[edi+ebx*4]
  51. ' call TEXT_EQU
  52. ' .if cl == 0
  53. ' xor eax,eax
  54. ' jmp ASM_END
  55. ' .endif
  56. ' inc ebx
  57. ' .endw
  58. ' mov eax,1
  59. ' ASM_END:
  60. ' pop ebp
  61. ' pop edi
  62. ' pop esi
  63. ' pop edx
  64. ' pop ecx
  65. ' pop ebx
  66. ' leave
  67. ' retn 8
  68. ' TEXT_EQU:
  69. ' push eax
  70. ' push edx
  71. ' push ebx
  72. ' TEXT_EQU_LOOP:
  73. ' mov bl,[eax]
  74. ' .if bl != [edx]
  75. ' mov cl,0
  76. ' jmp TEXT_EQU_END
  77. ' .elseif bl == 0
  78. ' mov cl,1
  79. ' jmp TEXT_EQU_END
  80. ' .endif
  81. ' inc eax
  82. ' inc edx
  83. ' JMP TEXT_EQU_LOOP
  84. ' TEXT_EQU_END:
  85. ' pop ebx
  86. ' pop edx
  87. ' pop eax
  88. ' ret

  89. 返回 (假)
复制代码

相关帖子

回复

使用道具 举报

腾讯云为数百万企业和开发者提供安全、稳定的云服务器、云数据库、CDN等云服务
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|官方QQ群|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备 15010402000325号 腾讯云安全认证

GMT+8, 2019-9-20 01:02, 100.26.182.28 , Processed in 0.474605 second(s), 30 queries .

Powered by Discuz! X3.4 © 2001-2017 Comsenz Inc.

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