Question: We will now set some values in memory dynamically before each run. On each run the values will change. This means you will need to

We will now set some values in memory dynamically before each run. On each run
the values will change. This means you will need to do some type of formulaic
operation with registers. We will tell you which registers are set beforehand
and where you should put the result. In most cases, its rax.
It turns out that using the div operator to compute the modulo operation is slow!
We can use a math trick to optimize the modulo operator (%). Compilers use this trick a lot.
If we have "x % y", and y is a power of 2, such as 2^n, the result will be the lower n bits of x.
Therefore, we can use the lower register byte access to efficiently implement modulo!
Using only the following instruction(s):
mov
Please compute the following:
rax = rdi %256
rbx = rsi %65536
We will now set the following in preparation for your code:
rdi =0xe572
rsi =0xe4a54e4a
Please give me your assembly in bytes (up to 0x1000 bytes):

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!