我想知道是否存在使用汇编生成随机数的例程或指令 在8086年。 任何帮助将不胜感激。
答案 0 :(得分:3)
最常用的方法是使用时间戳。在32位模式下,可以通过rdtsc
指令在16位模式下完成:使用BIOS中断1A的功能0。
因为它是时间戳,所以请避免经常使用它(因为缺乏适当的色散),并将其用作伪随机数发生器的种子。当您只需要一个随机值时,可以直接使用时间戳。
通常一个简单的伪随机数生成器就足够了:
static int seed = now();
seed = (seed * LARGE_PRIME1) % LARGE_PRIME2;
还有wiki
答案 1 :(得分:1)
对雅虎这个确切的问题有一个很好的答案!回答:
我怀疑这里的重点是要学习 编写汇编语言。这是 指令系统 (http://www.emu8086.com/assembler_tutorial/8086_instruction_set.html) 您拥有所需的所有说明 执行你需要的等式 生成伪随机数,除了 'mod'指令,你会 必须写一个子程序。工资 特别注意 对MUL和DIV的限制 说明。 “分开存放 文件“不隐含在 指令系统。你必须做得更好 了解这里想要什么。 “文件” 和“打印”是与之相关的概念 操作系统;他们是形式的 在这种情况下输出。
来自http://answers.yahoo.com/question/index?qid=20081030112909AAmjEsp
答案 2 :(得分:0)
您可能对Agner Fog的伪随机数生成器(其中一些是用汇编语言编写)here感兴趣。