首先,我是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)