在WIn32 c/c++编程中使用rand()函数(用srand()设置种子)就可以获得一个随机数
然后将得到的随机数处理就可以得到某一范围内的随机数
用汇编来实现也很简单
随机数关键要获得一个每一次都不同的数
RDTSC这个指令可以获得计算机启动以来CPU运行的周期数,
其结果保存在EDX:EAX中,EDX是高位,EAX是低位
以下为getRandom()函数的源码
====getrandom.asm====
segment .text
global getRandom
getRandom:
push ebp
mov ebp,esp
rdtsc
shr eax,2
mov ebx,[ebp+12]
add ebx,1
sub ebx,[ebp+8]
cdq
idiv ebx
add edx,[ebp+8]
mov eax,edx
mov esp,ebp
pop ebp
ret
=======main.c========
#