Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

IF WE WANT THE VALUE STORED IN \"D\" TO BE 49 (THAT\'S DECIMAL) WHEN THE PROGRAM

ID: 3597247 • Letter: I

Question

IF WE WANT THE VALUE STORED IN "D" TO BE 49 (THAT'S DECIMAL) WHEN THE PROGRAM HALTS, WHICH LINES OF CODE MUST CHANGE?

MAKE THESE CHANGES TO THE CODE AND RUN IT. WHAT IS THE HEXADECIMAL VALUE SEEN IN "D" WHEN THE PROGRAM HALTS NOW?

MOV D, ; total counter CALL doubleloop HLT 4 5 doubleloop: MOVA, MOV B, 10 ; for A in range(6, 10) 8 .Xloop: 12 13 14 15 16 17 18 .Xbreak: 19 20 21 .Yloophead: CMP A, B JE .Xbreak PUSH PUSH CALL POP B POP A INC A JMP .Xloop . Yloophead RET MOVA, MOV B, 10 ; for A in range(6, 10) 23 24 .Yloop: 25 26 27 28 29 39 .Ybreak: 31 32 CMP A, B JE .Ybreak INC D INC A JMP .Yloop RET

Explanation / Answer

In the givn program .xloop repeats 10 times and each time it calls .yloop,

.yloop repeats 10 times whenever it is called and each time D value is incremented.

So At the end of given program .yloop is executed 100 times and the Value of D is 100.

This is the given Program:

MOV     D,0

                                CALL      doubleloop

                                HLT

doubleloop:       MOV     A,0

                                MOV     B,10

.Xloop:                  CMP      A,B

                                JE            .Xbreak

                                PUSH     A

                                PUSH     B

                                CALL      .Yloophead

                                POP       B

                                POP       A

                                JMP       .Xloop

.Xbreak                RET

.Yloophead:        MOV     A,0

                                MOV     B,10

.Yloop:                  CMP      A,B

                                JE            .Ybreak

                                INC         D

                                INC         A

                                JMP       .Yloop

.Ybreak                 RET

Changed Program for the D value to be 49

MOV     D,0

                                CALL      doubleloop

                                HLT

doubleloop:       MOV     A,0

                                MOV     B,7

.Xloop:                  CMP      A,B

                                JE            .Xbreak

                                PUSH     A

                                PUSH     B

                                CALL      .Yloophead

                                POP       B

                                POP       A

                                JMP       .Xloop

.Xbreak                RET

.Yloophead:        MOV     A,0

                                MOV     B,7

.Yloop:                  CMP      A,B

                                JE            .Ybreak

                                INC         D

                                INC         A

                                JMP       .Yloop

.Ybreak                 RET

With this Program Both .xloop is executeed 7 times and each time it call .yloop

D is incremeted each time when .yloop is called and at the end of program .yloop is executed 49 times and the content of D is 49.

Hex Value for 4910 is 3116.

Please Rate it if you find the answer is helpful...Thanks...:)