Question: In computer simulation, LCM (Linear Congruential Method) is an algorithm for producing a sequence of random numbers in a recursive way. In specific, suppose the
In computer simulation, LCM (Linear Congruential Method) is an algorithm for producing a sequence of random numbers in a recursive way. In specific, suppose the random numbers to be generated are X0, X1, ... , Xn, then X0 is called the seed, and each Xi+1 is generated from Xi (i = 0, 1, 2...n 1) by the following equation: Xi+1 = (AXi + C) mod M where A is the multiplier, C is the increment, and M is the modulus. In this question, we want to generate a 6-bit unsigned random integer (range from 0 to 261 = 63). Suppose the parameters are A = 13, C = 17, M = 64 (or 2 6 ) and the seed is X0 = 19, please write an Assembly program for ATmega2560 to generate the next random number. In the program, you must use the register R16 to store both the seed and the generated random number.
Here is the psudo-code for the instructions:
R16 X_0
R17 A
R1:R0 R16 * R17
R16 R0 (why the value in R1 is discarded?)
R17 C
R16 R16 + R17 // Find you own way to calculate R16 R16 / M

Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
