设为首页收藏本站帮助中心
查看: 591|回复: 0
收起左侧

易语言MASM置入代码实现限制整数型大小的数值范围在最小值到最大值之间 (返回整数型)

[复制链接]
发表于 2021-3-8 17:36:31 | 显示全部楼层 |阅读模式

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

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

x
@@@.png
  1. .版本 2
  2. .支持库 spec

  3. .程序集 程序集1

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


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

  7. .子程序 _临时子程序
  8. .局部变量 值, 整数型
  9. .局部变量 最小值, 整数型
  10. .局部变量 最大值, 整数型
  11. .局部变量 计数, 整数型
  12. .局部变量 结果, 整数型

  13. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  14. 置随机数种子 ()
  15. .判断循环首 (真)
  16.     值 = 取随机数 (, ) × 取随机数 (, ) × 取随机数 (, )
  17.     .循环判断首 ()
  18.         最小值 = 取随机数 (, ) × 取随机数 (, ) × 取随机数 (, )
  19.         最大值 = 取随机数 (, ) × 取随机数 (, ) × 取随机数 (, )
  20.     .循环判断尾 (最小值 > 最大值)
  21.     结果 = 整数型_限制大小 (值, 最小值, 最大值)
  22.     .如果真 (结果 ≠ 选择 (值 < 最小值, 最小值, 选择 (值 > 最大值, 最大值, 值)) 或 结果 < 最小值 或 结果 > 最大值)
  23.         输出调试文本 (“出错”)
  24.         跳出循环 ()
  25.     .如果真结束
  26.     计数 = 计数 + 1
  27.     .如果真 (计数 ≥ 1000000)
  28.         计数 = 0
  29.         调试输出 (计数, 值, 最小值, 最大值, 结果)
  30.     .如果真结束

  31. .判断循环尾 ()


  32. .子程序 整数型_限制大小, 整数型, 公开, 置入代码:返回(选择 (值 < 最小值, 最小值, 选择 (值 > 最大值, 最大值, 值)))
  33. .参数 值, 整数型
  34. .参数 最小值, 整数型, , 值小于最小值,返回最小值
  35. .参数 最大值, 整数型, , 值大于最大值,返回最大值 (最小值不能大于最大值否则会出错)

  36. 置入代码 ({ 83, 81, 139, 69, 8, 139, 93, 12, 139, 77, 16, 59, 195, 125, 4, 139, 195, 235, 6, 59, 193, 126, 2, 139, 193, 89, 91, 201, 194, 12, 0 })
  37. ' push ebx
  38. ' push ecx
  39. ' mov eax,[ebp+8]
  40. ' mov ebx,[ebp+12]
  41. ' mov ecx,[ebp+16]
  42. ' .if sdword ptr eax < ebx
  43. ' mov eax,ebx
  44. ' .elseif  sdword ptr eax > ecx
  45. ' mov eax,ecx
  46. ' .endif
  47. ' pop ecx
  48. ' pop ebx
  49. ' leave
  50. ' retn 12
  51. 返回 (0)
复制代码

相关帖子

这个小可爱很神秘,什么都没留下
回复

使用道具 举报

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

本版积分规则