Exercise 5.2. Use the register-machine language to describe the iterative factorial machine of exercise 5.1. ———————————————————————————————————————————————————————————————————————— (controller (assign c (constant 1)) (assign p (constant 1)) test_counter (test (op >) (reg c) (constant n)) (branch fac_done) (assign p (op mul) (reg c) (reg p)) (assign c (op add) (reg c) (constant 1)) (goto test_counter) fac_done) I explicitly initialized c and p, and treated n as a 'constant', since it is not altered. This corresponds to the diagram. Assuming c, p, and n are all registers, and are already initialized, as in the example in the text: (controller test_counter (test (op >) (reg c) (reg n)) (branch fac_done) (assign p (op mul) (reg c) (reg p)) (assign c (op add) (reg c) (constant 1)) (goto test_counter) fac_done)