This set of 8051 Micro-controller Multiple Choice Questions & Answers (MCQs) focuses on “Jump, Loop and Call Instructions”.
1. DJNZ R0,label is how many bit instruction?
d) Cant be determined
Explanation: DJNZ R0,label has hex code, D8 and its corresponding label address. Hence, it is a two byte instruction.
2. JZ, JNZ, DJNZ, JC, JNC instructions monitor the bits of which register ?
Explanation: PSW register consists of flag bits like CY, P, Z etc so it is the one that is directly being monitored by these instructions.
3. Calculate the jump code for again and here if code starts at 0000H
MOV R1,#0 MOV A,#0 MOV R0,#25H AGAIN:ADD A,#0ECH JNC HERE HERE: INC R1 DJNZ R0,AGAIN MOV R0,A END
Explanation: Loop address is calculated by subtracting destination address and the address next to the source address.
So here if we start with 0000H
then source address is 0008H and destination address is 0004H
So loop address is 04-0A=E9
4. When the call instruction is executed the top most element of stack comes out to be
a) the address where stack pointer starts
b) the address next to the call instruction
c) address of the call instruction
d) next address of the stack pointer
Explanation: topmost element of the stack is the address of the instruction next to the call instruction so that when RET is executed then PC is filled with that address and so the pointer moves to the main program and continue with its routine task.
5. LCALL instruction takes
a) 2 bytes
b) 4 bytes
c) 3 bytes
d) 1 byte
Explanation: LCALL instruction moves the pointer to a 16 bit address so it is a 3 byte instruction.
6. Are PUSH and POP instructions are a type of CALL instructions?
c) none of the mentioned
d) cant be determined
Explanation: PUSH and POP instructions are not CALL instructions because in POP and PUSH instructions the pointer does not move to any location specified by its address which is the fundamental of CALL instruction, so it is not a type of CALL instruction.
7. What is the time taken by one machine cycle if crystal frequency is 20MHz?
a) 1.085 micro seconds
b) 0.60 micro seconds
c) 0.75 micro seconds
d) 1 micro seconds
Explanation: Time taken by one machine cycle is calculated by the inverse of a ( crytal frequency ) /12
8. Find the number of times the following loop will be executed
MOV R6,#200 BACK:MOV R5,#100 HERE:DJNZ R5, HERE DJNZ R6,BACK END
Explanation: It will be executed 200*100 times.
9. What is the meaning of the instruction MOV A,05H ?
a) data 05H is stored in the accumulator
b) Fifth bit of accumulator is set to one
c) address 05H is stored in the accumulator
d) None of the mentioned
Explanation: If we need to store the address in the accumulator, then directly the address is moved to it unlikely of using # used for storing data in any register.
10. Does the two instructions mean the same?
1) BACK: DEC R0 JZ BACK 2) BACK: DJNZ RO, BACK
c) cant be determined
d) yes and second one is preferred
Explanation: In the first statement, when the decrements approaches zero then the jump moves back and in second statement, when the result after decrements is not zero, then it jumps back.
Sanfoundry Global Education & Learning Series – Micro-controllers.