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

易语言MASM置入代码判断 IEEE754编码 小数型/双精度小数型 是否运算正确 (返回逻辑型)

[复制链接]
发表于 2022-8-6 08:36:23 | 显示全部楼层 |阅读模式
111.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.     .如果真结束
  27.     .如果真 (双精度小数正确 = 假)
  28.         调试输出 (双精度小数)
  29.     .如果真结束

  30. .判断循环尾 ()



  31. .子程序 小数型_是否运算正确, 逻辑型, 公开
  32. .参数 欲校验的计算结果, 小数型

  33. 置入代码 ({ 139, 69, 8, 37, 0, 0, 128, 127, 61, 0, 0, 128, 127, 117, 4, 51, 192, 235, 5, 184, 1, 0, 0, 0, 201, 194, 4, 0 })
  34. ' mov eax,[ebp+8]
  35. ' and eax,2139095040
  36. ' .if eax == 2139095040
  37. ' xor eax,eax
  38. ' .else
  39. ' mov eax,1
  40. ' .endif
  41. ' leave
  42. ' retn 4
  43. 返回 (假)

  44. .子程序 双精度小数型_是否运算正确, 逻辑型, 公开
  45. .参数 欲校验的计算结果, 双精度小数型

  46. 置入代码 ({ 139, 69, 12, 37, 0, 0, 240, 127, 61, 0, 0, 240, 127, 117, 4, 51, 192, 235, 5, 184, 1, 0, 0, 0, 201, 194, 8, 0 })
  47. ' mov eax,[ebp+12]
  48. ' and eax,2146435072
  49. ' .if eax == 2146435072
  50. ' xor eax,eax
  51. ' .else
  52. ' mov eax,1
  53. ' .endif
  54. ' leave
  55. ' retn 8

  56. 返回 (假)

  57. .子程序 取随机小数, 小数型
  58. .局部变量 字节集, 字节集, 静态
  59. .局部变量 计数, 整数型

  60. .如果真 (取字节集长度 (字节集) ≠ 4)
  61.     字节集 = 取空白字节集 (4)
  62. .如果真结束
  63. .计次循环首 (4, 计数)
  64.     字节集 [计数] = 取随机数 (0, 32767)
  65. .计次循环尾 ()
  66. 返回 (取字节集数据 (字节集, #小数型, ))

  67. .子程序 取随机双精度小数, 双精度小数型
  68. .局部变量 字节集, 字节集, 静态
  69. .局部变量 计数, 整数型

  70. .如果真 (取字节集长度 (字节集) ≠ 8)
  71.     字节集 = 取空白字节集 (8)
  72. .如果真结束
  73. .计次循环首 (8, 计数)
  74.     字节集 [计数] = 取随机数 (, )
  75. .计次循环尾 ()
  76. 返回 (取字节集数据 (字节集, #双精度小数型, ))
复制代码

相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则