2010-12-07 171 views

回答

3

最常見的方法是使用時間戳。在32位模式下,可以通過rdtsc指令以16位模式完成:使用BIOS中斷1A的功能0。因爲它是一個時間戳,請避免頻繁使用它(因爲缺乏適當的分散),並將它用作僞隨機數生成器的種子。當你只需要一個隨機值時,你可以直接使用時間戳。

通常一個簡單的僞隨機數生成器就足夠了:

static int seed = now(); 
seed = (seed * LARGE_PRIME1) % LARGE_PRIME2; 

而且還有wiki

+0

好的,請發給我你的意思是僞隨機數發生器的URL。 – 2010-12-07 11:41:08

1

有一個很好的答案在雅虎這個確切的問題回答:

我懷疑這裏的重點是學習 來編寫彙編語言。這裏的 指令集 (http://www.emu8086.com/assembler_tutorial/8086_instruction_set.html) 你有你需要 執行需要 產生僞隨機數,除了 的「國防部」的指令,你會 必須寫一個子程序方程的所有指令。特別注意對MUL和DIV 指令的限制 。 「存儲在單獨的 文件中」並不隱含在 指令集中。你必須更好地瞭解這裏需要的東西。 「文件」 和「打印」是與 操作系統有關的概念;在這種情況下,它們是 輸出的形式。

http://answers.yahoo.com/question/index?qid=20081030112909AAmjEsp

0

您可能會感興趣的昂納霧的僞隨機數發生器(其中一些是用匯編寫的)here