如何在8086汇编中生成随机数?
我想知道是否有使用汇编生成随机数的例程或指令 在 8086 上。 任何帮助将不胜感激。
I want to know if there a routine or an instruction to generate a random number using assembly
on 8086.
any help will be appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
最常见的方法是使用时间戳。在32位模式下可以通过rdtsc指令来完成,在16位模式下可以通过使用BIOS中断1A的功能0来完成。
因为它是时间戳,所以避免频繁使用它(因为缺乏适当的分散),并将其用作伪随机数生成器的种子。当您只需要一个随机值时,可以直接使用时间戳。
通常一个简单的伪随机数生成器就足够了:
还有 wiki
The most common way is to use the timestamp. In 32 bit mode it can be done by
rdtsc
instruction, in 16 bit mode: by using function 0 of BIOS interrupt 1A.Because it's a timestamp, avoid using it frequently (because of lack of proper dispersion), and use it as seed for an pseudo-random number generator. When you need just one random value, you can use the timestamp directly.
Usually a simple pseudo-random number generator is enough:
And there is also wiki
对于这个问题,雅虎上有一个很好的答案!答案:
There is a good answer to this exact question on Yahoo! Answers:
您可能对 Agner Fog 的伪随机数生成器(其中一些是用汇编语言编写的)感兴趣,请访问此处。
You might be interested in Agner Fog's pseudo random number generators (some of which are written in assembly) here.