From a very strictly adhering sense to the hardware and circuit-level operations of any standard (non-specialized, DSPs, or supercomputing systems, etc.) microprocessor follow very similar, almost exact in some ways, operations.

The typical role of the (main) processor in a computer, integrated with other hardware circuits or not, and excluding DMA is to have a memory subsystem fetch byte(s) for it to "process" in whatever way. To have a processor "randomly" selective something can be abstracted and seen from a data algorithm HLL-type point of view, but on the circuit-level the operations can only get so complex. I know some Assembly of x86, so I can demonstrate further on the details of what I'm asking.

If you fetch a byte, or series of bytes, and then use some schematic to cycle through potential jump offsets, that is the only way to do randomness? Are their other ways?


1 Answer 1


Everything you can do in a high-level language can be done in assembly. After all, the high-level language is compiled to machine code.

What you seem to be describing is pseudorandom numbers, which are numbers generated by a computer using an algorithm, and look (computationally) random. It is also possible to generate "somewhat random" numbers by harvesting (say) thermal heat, or other "random" phenomena. The result won't quite be a sequence of i.i.d. fair coin tosses, but if you run it through an extractor it will look (computationally) pretty similar, and be theoretically unpredictable (since it's based on actual physical randomness).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.