随机数

在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========

#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值