Advertisement
Guest User

Untitled

a guest
Jun 27th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. uint32_t rng_num;
  2. asm volatile("movl $100, %ecxnt"
  3. "__trng_cpu_ret:nt"
  4. "rdrand %%eaxnt"
  5. "jnc .__trng_cpu_endnt"
  6. "loop __trng_cpu_retnt"
  7. ".__trng_cpu_fail:nt"
  8. "movl $0, %%eaxnt"
  9. ".__trng_cpu_end:nt"
  10. "retnt"
  11. : "=r" (rng_num)
  12. :
  13. :"%eax");
  14.  
  15. mov ecx, 100 ;number of retries
  16. retry:
  17. rdrand eax
  18. jnc .done ;carry flag is clear on success
  19. loop retry
  20. .fail:
  21. ;no random number available
  22. .done:
  23. ;random number is is EAX
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement