Quiz 10

Trace through the execution of the following assembly language program when the input is 6.
1 (loadI 0 R0)
2 (loadI 1 R1)
3 (loadI 2 R2)
4 (input I1 R3)
5 (jumpEQ R3 R0 11)
6 (rem R3 R2 R4)
7 (output R4 O1)
8 (sub R3 R4 R3)
9 (div R3 R2 R3)
10 (jump 5)
11 (halt)
ANSWER

PC | R0 | R1 | R2 | R3 | R4 | I1 | O1
1  |  0 |    |    |    |    |  6
2  |    |  1 |    |    |    |    |               
3  |    |    |  2 |    |    |    |               
4  |    |    |    |  6 |    |    |                  
5  |    |    |    |    |    |    |                 
6  |    |    |    |    |  0 |    |     
7  |    |    |    |    |    |    |  0
8  |    |    |    |    |    |    |                 
9  |    |    |    |  3 |    |    |                                  
10 |    |    |    |    |    |    |                  
5  |    |    |    |    |    |    |                 
6  |    |    |    |    |  1 |    |                                      
7  |    |    |    |    |    |    |  1                                          
8  |    |    |    |  2 |    |    |                                  
9  |    |    |    |  1 |    |    |                                  
10 |    |    |    |    |    |    |                  
5  |    |    |    |    |    |    |                 
6  |    |    |    |    |    |    |                 
7  |    |    |    |    |    |    |  1                                          
8  |    |    |    |  0 |    |    |                                  
9  |    |    |    |    |    |    |                 
10 |    |    |    |    |    |    |                  
5  |    |    |    |    |    |    |                 
11 |    |    |    |    |    |    |                  


(((pc 1)  (R0 0)) ())                           .... (loadI 0 R0))
(((pc 2)  (R0 0) (R1 1)) ())                    .... (loadI 1 R1))
(((pc 3)  (R0 0) (R1 1) (R2 2)) ())             .... (loadI 2 R2))
(((pc 4)  (R0 0) (R1 1) (R2 2) (R3 6)) ())      .... (input I1 R3))
(((pc 5)  (R0 0) (R1 1) (R2 2) (R3 6)) ())      .... (jumpEQ R3 R0 11))
(((pc 6)  (R0 0) (R1 1) (R2 2) (R3 6) (R4 0)) ( .... (rem R3 R2 R4))))
(((pc 7)  (R0 0) (R1 1) (R2 2) (R3 6) (R4 0)) ( .... (output R4 O1))))
(((pc 8)  (R0 0) (R1 1) (R2 2) (R3 6) (R4 0)) ( .... (sub R3 R4 R3))))
(((pc 9)  (R0 0) (R1 1) (R2 2) (R3 3) (R4 0)) ( .... (div R3 R2 R3))))
(((pc 10) (R0 0) (R1 1) (R2 2) (R3 3) (R4 0))  .... (jump 5))())
(((pc 5)  (R0 0) (R1 1) (R2 2) (R3 3) (R4 0)) ( .... (jumpEQ R3 R0 11))))
(((pc 6)  (R0 0) (R1 1) (R2 2) (R3 3) (R4 1)) ( .... (rem R3 R2 R4))))
(((pc 7)  (R0 0) (R1 1) (R2 2) (R3 3) (R4 1)) ( .... (output R4 O1))))
(((pc 8)  (R0 0) (R1 1) (R2 2) (R3 2) (R4 1)) ( .... (sub R3 R4 R3))))
(((pc 9)  (R0 0) (R1 1) (R2 2) (R3 1) (R4 1)) ( .... (div R3 R2 R3))))
(((pc 10) (R0 0) (R1 1) (R2 2) (R3 1) (R4 1))  .... (jump 5))())
(((pc 5)  (R0 0) (R1 1) (R2 2) (R3 1) (R4 1)) ( .... (jumpEQ R3 R0 11))))
(((pc 6)  (R0 0) (R1 1) (R2 2) (R3 1) (R4 1)) ( .... (rem R3 R2 R4))))
(((pc 7)  (R0 0) (R1 1) (R2 2) (R3 1) (R4 1)) ( .... (output R4 O1))))
(((pc 8)  (R0 0) (R1 1) (R2 2) (R3 0) (R4 1)) ( .... (sub R3 R4 R3))))
(((pc 9)  (R0 0) (R1 1) (R2 2) (R3 0) (R4 1)) ( .... (div R3 R2 R3))))
(((pc 10) (R0 0) (R1 1) (R2 2) (R3 0) (R4 1))  .... (jump 5))())
(((pc 5)  (R0 0) (R1 1) (R2 2) (R3 0) (R4 1)) ( .... (jumpEQ R3 R0 11))))
(((pc 11) 
(--------------------------------------------- (halt))
DONE