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

易语言MASM置入代码实现判断小数型是否等于负0/双精度小数型是否为负零 (返回逻辑型)

[复制链接]
发表于 2023-12-15 20:01:16 | 显示全部楼层 |阅读模式
1.png
  1. .版本 2

  2. .程序集 程序集1

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


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

  6. .子程序 _临时子程序
  7. .局部变量 小数, 小数型
  8. .局部变量 双精度小数, 双精度小数型

  9. 小数 = 小数型_负零 ()
  10. 双精度小数 = 双精度小数型_负零 ()
  11. 输出调试文本 (小数型_等于负零 (小数))
  12. 输出调试文本 (双精度小数型_等于负零 (双精度小数))
  13. 输出调试文本 (小数)
  14. 输出调试文本 (双精度小数)


  15. .子程序 小数型_等于负零, 逻辑型, 公开, 负零:浮点数的符号位为1(负数)且指数位与尾数位均为0的情况,整数不存在负零。
  16. .参数 小数, 小数型

  17. 置入代码 ({ 139, 69, 8, 61, 0, 0, 0, 128, 117, 7, 184, 1, 0, 0, 0, 235, 2, 51, 192, 201, 194, 4, 0 })
  18. ' mov eax,[ebp+8]
  19. ' .if eax == 80000000H
  20. ' mov eax,1
  21. ' .else
  22. ' xor eax,eax
  23. ' .endif
  24. ' leave
  25. ' retn 4

  26. 返回 (假)

  27. .子程序 双精度小数型_等于负零, 逻辑型, 公开
  28. .参数 双精度小数, 双精度小数型

  29. 置入代码 ({ 82, 139, 69, 8, 139, 85, 12, 129, 250, 0, 0, 0, 128, 117, 11, 11, 192, 117, 7, 184, 1, 0, 0, 0, 235, 2, 51, 192, 90, 201, 194, 8, 0 })
  30. ' push edx
  31. ' mov eax,[ebp+8]
  32. ' mov edx,[ebp+12]
  33. ' .if edx == 80000000H && eax == 0
  34. ' mov eax,1
  35. ' .else
  36. ' xor eax,eax
  37. ' .endif
  38. ' pop edx
  39. ' leave
  40. ' retn 8

  41. 返回 (假)

  42. .子程序 小数型_负零, 小数型

  43. 置入代码 ({ 184, 0, 0, 0, 128, 201, 195 })
  44. ' mov eax,80000000H
  45. ' leave
  46. ' retn
  47. 返回 (0)

  48. .子程序 双精度小数型_负零, 双精度小数型

  49. 置入代码 ({ 186, 0, 0, 0, 128, 184, 0, 0, 0, 0, 201, 195 })
  50. ' mov edx,80000000H
  51. ' mov eax,0
  52. ' leave
  53. ' retn
  54. 返回 (0)
复制代码


相关帖子

回复

使用道具 举报

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

本版积分规则