This problem is adapted from an earlier edition of P&H, and should be submitted.
Consider the following code used to implement a new instruction: foo $t3,$t1,$t2:
mask : . word 0xFFFFF83F
s t a r t : l a $t0 , mask
lw $t0 , 0 ( $ t 0 )
l a $t3 , s h f t r
lw $t3 , 0 ( $ t 3 )
and $t3 , $t3 , $ t 0
a ndi $t2 , $t2 , 0 x 0 0 1 f
s l l $t2 , $t2 , 6
o r $t3 , $t3 , $ t 2
l a $t5 , s h f t r
sw $t3 , 0 ( $ t 5 )
s h f t r : s l l $t3 , $t1 , 0
Add meaningful comments to the code and write a brief (2 sentence max) description of what foo does. This
is not the same as saying how it does it - e.g., when asked to describe what a pedestrian is doing, you would
say they are walking, not that they are ilfting their left leg, angling it forward, putting it down, . . ..
State at least one reason why writing “self-modifying code” such as this is a bad idea (and often times not
actually allowed by the operating system)?