IF WE WANT THE VALUE STORED IN \"D\" TO BE 49 (THAT\'S DECIMAL) WHEN THE PROGRAM
ID: 3756385 • 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 doubleloop: MOV A, 0 MOV B, 10 ; for A in range(6, 10) Xloop: CMPA, B JE .Xbreak PUSH PUSH CALL POP B POP A INC A JMP .Xloop . Yloophead .Xbreak RET . Yloophead: MOV A, 0 MOV B, 10 ; for A in range(6, 10) .Yloop CMPA, B JE .Ybreak INC D INC A JMP .Yloop . Ybreak RETExplanation / Answer
In the given 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.