Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uint32_t rng_num;
- asm volatile("movl $100, %ecxnt"
- "__trng_cpu_ret:nt"
- "rdrand %%eaxnt"
- "jnc .__trng_cpu_endnt"
- "loop __trng_cpu_retnt"
- ".__trng_cpu_fail:nt"
- "movl $0, %%eaxnt"
- ".__trng_cpu_end:nt"
- "retnt"
- : "=r" (rng_num)
- :
- :"%eax");
- mov ecx, 100 ;number of retries
- retry:
- rdrand eax
- jnc .done ;carry flag is clear on success
- loop retry
- .fail:
- ;no random number available
- .done:
- ;random number is is EAX
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement