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

调用Rdtsc指令与取启动时间 通过测量误差生成真随机数 延时1比特秒返回随机逻辑或数值

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

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

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

x
1.png

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

  3. .程序集 程序集1

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


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

  7. .子程序 _临时子程序



  8. 调试输出 (取现行时间 (), 延时1秒取随机逻辑 ())
  9. 调试输出 (取现行时间 (), 延时8秒取随机字节 ())
  10. 调试输出 (取现行时间 (), 延时16秒取随机短整数 ())
  11. 调试输出 (取现行时间 (), 延时32秒取随机整数 ())
  12. 调试输出 (取现行时间 (), 延时64秒取随机长整数 ())



  13. .子程序 延时64秒取随机长整数, 长整数型, 公开, 先延时64秒,然后返回一个随机的长整数
  14. .局部变量 返回值, 字节集
  15. .局部变量 计数, 整数型

  16. 返回值 = 取空白字节集 (8)
  17. .计次循环首 (8, 计数)
  18.     返回值 [计数] = 延时8秒取随机字节 ()
  19. .计次循环尾 ()
  20. 返回 (取字节集数据 (返回值, #长整数型, ))

  21. .子程序 延时32秒取随机整数, 整数型, 公开, 先延时32秒,再返回一个随机的整数
  22. .局部变量 返回值, 整数型

  23. .计次循环首 (4, )
  24.     返回值 = 位或 (返回值, 延时8秒取随机字节 ())
  25.     返回值 = 左移 (返回值, 8)
  26. .计次循环尾 ()
  27. 返回 (返回值)

  28. .子程序 延时16秒取随机短整数, 短整数型, 公开, 先延时16秒,然后返回一个随机的短整数
  29. .局部变量 返回值, 短整数型

  30. .计次循环首 (2, )
  31.     返回值 = 位或 (返回值, 延时8秒取随机字节 ())
  32.     返回值 = 左移 (返回值, 8)
  33. .计次循环尾 ()
  34. 返回 (返回值)

  35. .子程序 延时8秒取随机字节, 字节型, 公开, 先延时8秒,然后返回一个随机的字节
  36. .局部变量 返回值, 字节型

  37. .计次循环首 (8, )
  38.     返回值 = 位或 (返回值, 到字节 (延时1秒取随机逻辑 ()))
  39.     返回值 = 左移 (返回值, 1)
  40. .计次循环尾 ()
  41. 返回 (返回值)


  42. .子程序 延时1秒取随机逻辑, 逻辑型, 公开, 先延时1秒,然后返回一个随机的逻辑
  43. .局部变量 A, 长整数型
  44. .局部变量 B, 长整数型

  45. A = rdtsc ()
  46. 延时 (1000)
  47. B = rdtsc ()
  48. 返回 (到整数 (B ÷ (B - A)) < 取启动时间 () ÷ 1000)


  49. .子程序 rdtsc, 长整数型

  50. 置入代码 ({ 15, 49, 201, 195 })
  51. ' rdtsc
  52. ' leave
  53. ' retn
  54. 返回 (0)
复制代码
回复

使用道具 举报

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

本版积分规则