小编Raf*_*Raf的帖子

在x86 8086汇编中生成0-9范围内的随机数

首先,我是8086大会的新手,我很难掌握这些知识.不过,我会尽我所能.

我一直在尝试编写代码来生成0-9范围内的随机数.在研究了几个例子和建议之后,这就是我最终的结果.我没有对检索到的时钟计数应用任何数学函数,为简单起见而且我认为这是不必要的.由于某些原因,我最终得到了一些数字,比如1,3和9这样的数字少了6,7倍.我相信这是因为我采用了时钟滴答的较低阶,其中值改变了迅速.

我的目的是模拟骰子卷,后来将下面代码的范围改为1-6.我的问题是,这足以达到我的目的吗?或者有更好的方法吗?

代码:

RANDGEN:        ; generate a rand no using the system time
RANDSTART:
   MOV AH, 00h  ; interrupts to get system time        
   INT 1AH      ; CX:DX now hold number of clock ticks since midnight      
                ; lets just take the lower bits of DL for a start..
   MOV BH, 57   ; set limit to 57 (ASCII for 9) 
   MOV AH, DL  
   CMP AH, BH   ; compare with value in  DL,      
   JA RANDSTART ; if more, regenerate. if not, continue... …
Run Code Online (Sandbox Code Playgroud)

random x86 assembly x86-16

7
推荐指数
1
解决办法
4万
查看次数

标签 统计

assembly ×1

random ×1

x86 ×1

x86-16 ×1