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

从F到0 - From F to 0

 找回密码
 加入我们
搜索
查看: 623|回复: 0
收起左侧

易语言MASM置入代码实现无符号长整数型:大于/小于/大于等于/小于等于比较(返回逻辑型)

[复制链接]
发表于 2022-12-10 16:04:17 | 显示全部楼层 |阅读模式
1.png
  1. .版本 2

  2. .程序集 程序集1

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


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

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

  7. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  8. 输出调试文本 (无符号长整数型_大于 (-123, 123))
  9. 输出调试文本 (无符号长整数型_小于 (123, -123))
  10. 输出调试文本 (无符号长整数型_大于等于 (-1, 1))
  11. 输出调试文本 (无符号长整数型_小于等于 (666, 666))

  12. .子程序 无符号长整数型_大于, 逻辑型, 公开
  13. .参数 被比较值, 长整数型
  14. .参数 比较值, 长整数型

  15. 置入代码 ({ 83, 81, 82, 139, 69, 8, 139, 93, 12, 139, 77, 16, 139, 85, 20, 59, 218, 118, 9, 184, 1, 0, 0, 0, 235, 19, 235, 15, 59, 218, 117, 11, 59, 193, 118, 7, 184, 1, 0, 0, 0, 235, 2, 51, 192, 90, 89, 91, 201, 194, 16, 0 })
  16. ' push ebx
  17. ' push ecx
  18. ' push edx
  19. ' mov eax,[ebp+8]
  20. ' mov ebx,[ebp+12]
  21. ' mov ecx,[ebp+16]
  22. ' mov edx,[ebp+20]
  23. ' .if ebx > edx
  24. ' mov eax,1
  25. ' jmp ASM_END
  26. ' .elseif ebx == edx && eax > ecx
  27. ' mov eax,1
  28. ' jmp ASM_END
  29. ' .endif
  30. ' xor eax,eax
  31. ' ASM_END:
  32. ' pop edx
  33. ' pop ecx
  34. ' pop ebx
  35. ' leave
  36. ' retn 16
  37. 返回 (假)

  38. .子程序 无符号长整数型_小于, 逻辑型, 公开
  39. .参数 被比较值, 长整数型
  40. .参数 比较值, 长整数型

  41. 置入代码 ({ 83, 81, 82, 139, 69, 8, 139, 93, 12, 139, 77, 16, 139, 85, 20, 59, 218, 115, 9, 184, 1, 0, 0, 0, 235, 19, 235, 15, 59, 218, 117, 11, 59, 193, 115, 7, 184, 1, 0, 0, 0, 235, 2, 51, 192, 90, 89, 91, 201, 194, 16, 0 })
  42. ' push ebx
  43. ' push ecx
  44. ' push edx
  45. ' mov eax,[ebp+8]
  46. ' mov ebx,[ebp+12]
  47. ' mov ecx,[ebp+16]
  48. ' mov edx,[ebp+20]
  49. ' .if ebx < edx
  50. ' mov eax,1
  51. ' jmp ASM_END
  52. ' .elseif ebx == edx && eax < ecx
  53. ' mov eax,1
  54. ' jmp ASM_END
  55. ' .endif
  56. ' xor eax,eax
  57. ' ASM_END:
  58. ' pop edx
  59. ' pop ecx
  60. ' pop ebx
  61. ' leave
  62. ' retn 16
  63. 返回 (假)

  64. .子程序 无符号长整数型_大于等于, 逻辑型, 公开
  65. .参数 被比较值, 长整数型
  66. .参数 比较值, 长整数型

  67. 置入代码 ({ 83, 81, 82, 139, 69, 8, 139, 93, 12, 139, 77, 16, 139, 85, 20, 59, 218, 119, 8, 59, 193, 117, 13, 59, 218, 117, 9, 184, 1, 0, 0, 0, 235, 19, 235, 15, 59, 218, 117, 11, 59, 193, 118, 7, 184, 1, 0, 0, 0, 235, 2, 51, 192, 90, 89, 91, 201, 194, 16, 0 })
  68. ' push ebx
  69. ' push ecx
  70. ' push edx
  71. ' mov eax,[ebp+8]
  72. ' mov ebx,[ebp+12]
  73. ' mov ecx,[ebp+16]
  74. ' mov edx,[ebp+20]
  75. ' .if ebx > edx || (eax == ecx && ebx == edx)
  76. ' mov eax,1
  77. ' jmp ASM_END
  78. ' .elseif ebx == edx && eax > ecx
  79. ' mov eax,1
  80. ' jmp ASM_END
  81. ' .endif
  82. ' xor eax,eax
  83. ' ASM_END:
  84. ' pop edx
  85. ' pop ecx
  86. ' pop ebx
  87. ' leave
  88. ' retn 16
  89. 返回 (假)

  90. .子程序 无符号长整数型_小于等于, 逻辑型, 公开
  91. .参数 被比较值, 长整数型
  92. .参数 比较值, 长整数型

  93. 置入代码 ({ 83, 81, 82, 139, 69, 8, 139, 93, 12, 139, 77, 16, 139, 85, 20, 59, 218, 114, 8, 59, 193, 117, 13, 59, 218, 117, 9, 184, 1, 0, 0, 0, 235, 19, 235, 15, 59, 218, 117, 11, 59, 193, 115, 7, 184, 1, 0, 0, 0, 235, 2, 51, 192, 90, 89, 91, 201, 194, 16, 0 })
  94. ' push ebx
  95. ' push ecx
  96. ' push edx
  97. ' mov eax,[ebp+8]
  98. ' mov ebx,[ebp+12]
  99. ' mov ecx,[ebp+16]
  100. ' mov edx,[ebp+20]
  101. ' .if ebx < edx || (eax == ecx && ebx == edx)
  102. ' mov eax,1
  103. ' jmp ASM_END
  104. ' .elseif ebx == edx && eax < ecx
  105. ' mov eax,1
  106. ' jmp ASM_END
  107. ' .endif
  108. ' xor eax,eax
  109. ' ASM_END:
  110. ' pop edx
  111. ' pop ecx
  112. ' pop ebx
  113. ' leave
  114. ' retn 16
  115. 返回 (假)
复制代码

相关帖子

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-3-19 11:25 , Processed in 0.486028 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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