📜  如何在 8086 中生成随机数 (1)

📅  最后修改于: 2023-12-03 15:08:32.715000             🧑  作者: Mango

如何在8086中生成随机数

在8086汇编语言中生成随机数主要涉及到两个部分:取得随机种子和根据随机种子生成随机数。本文将分别介绍这两个部分。

取得随机种子

随机数生成的第一步是取得随机种子,通常可以通过获取系统时间或者用户输入等方式来获取随机种子。在8086汇编语言中,我们可以使用系统中断13h获取当前时间。

下面是一个获取时间随机种子的示例代码:

MOV AH, 2CH ;活动获取系统当前时间
INT 21H ;执行中断
MOV AX, CX ;CX中存储了高字节的日期,DX中存储了低字节的时间。
MOV BL, AH ;AH中存储了每天的秒数
XOR BH, BH ;清空BH,放入AH中的秒数的高字节
MOV AL, BH ;AL中放入BH(为了保留AH中原来的秒数的低字节)
生成随机数

随机种子获取了以后,接下来就可以根据随机种子生成需求的随机数了。一般情况下,我们可以通过对随机种子进行一定的运算操作来生成所需的随机数。

以下是一个生成随机数的示例代码:

MOV CX, 4FH ;取一个比较随机的数为除数
XOR AX, AX ;首先将随机数寄存器清空
MOV AL, BL ;将随机数种子放入随机数寄存器
MUL CX ;AX中存储了产生的随机数
XOR AH, AH ;清空AH,将AL中的内容放到AH中

代码中,我们将一个比较随机的数4FH作为除数,将随机数种子放入AX寄存器中,对其进行乘法运算并将结果存入AX中,最后将结果的低字节赋值给AH,即可作为一个随机数使用。

综上所述,通过获取随机种子并进行运算操作,我们便可以在8086汇编语言中生成随机数了。

参考资料: