Skip to main content

Microcontrollers SEM 2 UNIT 2

 Unit 2: 8051 Instruction Set



Q.IMP Write assembly language program on subroutine using loop: Multiply 15 by 10 using the technique of a repeated addition (7 Marks)

Code snippet

; Main program

MOV A, #15 ; Load value 15 into accumulator

CALL MULTIPLY ; Call the subroutine to multiply by 10


; After subroutine returns, the result will be in accumulator A

; (Accumulator will contain 150)

 

; Rest of your program code...

 

; Subroutine definition

MULTIPLY:

MOV R0, #10 ; Set counter (R0) to 10 for 10 repetitions

LOOP:

ADD A, #15 ; Add 15 to accumulator (repeated addition)

DJNZ R0, LOOP ; Decrement counter and loop if not zero

 

; After the loop, A will have the result (15*10)

RET ; Return from the subroutine




Question 1 (6 Marks): Explain the concept of addressing modes in the 8051 instruction set. Provide examples for different addressing modes.

Answer:

Addressing modes specify how the 8051 microcontroller locates the data operand for an instruction. Here are some common addressing modes:

  • Register Direct: The operand is directly specified by a register name (A, B, C, D, E, H, or L).
    • Example: MOV A, B (Move the content of register B to the accumulator)
  • Immediate: The operand is the data value itself, included within the instruction.
    • Example: ADD A, #10 (Add the immediate value 10 to the accumulator)
  • Direct: The operand is located at a memory address specified by an 8-bit value following the instruction.
    • Example: MOV A, 35h (Move the value from memory location 35h to the accumulator)
  • Indirect: The operand address is stored in a register, and the microcontroller retrieves the data from that memory location.
    • Example: MOV A, @R0 (Move the value from the memory location pointed to by register R0 to the accumulator)




Question 2 (6 Marks): Describe the different Data Transfer instructions in the 8051 instruction set. Give examples for each type.

Answer:

Data transfer instructions move data between various memory locations and registers within the 8051 microcontroller. Here are some common types:

  • MOV (Move): The most basic data transfer instruction. It copies data from one location to another.
    • Example: MOV A, B (Move the content of register B to the accumulator)
  • MOVX (Move with Exchange): Transfers data and simultaneously swaps the contents of two locations.
    • Example: MOVX A, @DPTR (Move the value from the memory location pointed to by DPTR to the accumulator and swap it with the original accumulator value)
  • LDC (Load Constant): Loads a specific data value into a register directly from the instruction.
    • Example: LDC A, #3Fh (Load the hexadecimal value 3Fh into the accumulator)
  • XCH (Exchange): Swaps the contents of two registers.
    • Example: XCH A, R1 (Swap the content of the accumulator with register R1)




Question 3 (6 Marks): Explain Arithmetic instructions in the 8051 and provide assembly language examples for addition and subtraction.

Answer:

Arithmetic instructions perform mathematical operations on data in the 8051. These instructions can affect the Program Status Word (PSW) flags that indicate the outcome of the operation.

  • ADD (Add): Adds two operands and stores the result in the accumulator.
    • Example: ADD A, #5 (Add the immediate value 5 to the accumulator)
  • ADDC (Add with Carry): Adds two operands and the Carry flag (CY) to the accumulator.
    • Example: ADDC A, B (Add the content of register B and the Carry flag to the accumulator)
  • SUBB (Subtract with Borrow): Subtracts the second operand and the Borrow flag (borrowed from the previous operation) from the accumulator.
    • Example: SUBB A, #10 (Subtract the immediate value 10 from the accumulator, potentially borrowing from the Carry flag)




Question 4 (6 Marks): Discuss Logical instructions in the 8051 instruction set and provide examples for AND and OR operations.

Answer:

Logical instructions perform bitwise operations on data in the 8051. These operations manipulate individual bits (0s and 1s) within the data.

  • ANL (AND): Performs a bitwise AND operation on two operands. The result in each bit position is 1 only if both corresponding bits in the operands are 1.

  • ORL (OR): Performs a bitwise OR operation on two operands. The result in each bit position is 1 if at least one corresponding bit in the operands is 1.
  • XRL (eXclusive OR): Performs a bitwise XOR operation on two operands. The result in each bit position is 1 if the corresponding bits in the operands are different.




Question 5 : Briefly describe Branch instructions in the 8051 and give an example of a conditional jump.

Answer:

Branch instructions alter the normal program flow of the 8051 based on certain conditions. They allow the program to jump to a different code section depending on the state of the Program Status Word (PSW) flags or the result of a comparison.

  • JMP (Jump): Unconditionally jumps to a specific memory address.
  • JC (Jump if Carry): Jumps to a specified address if the Carry flag (CY) is set.
  • JZ (Jump if Zero): Jumps to a specified address if the Zero flag (Z) is set (indicating the result of the previous operation was zero).




Question 6: What are Bit manipulation instructions in the 8051?

Answer:

Bit manipulation instructions allow you to control individual bits within a byte of data in the 8051. These instructions are useful for setting, clearing, toggling, or isolating specific bits for various operations.

  • SETB (Set Bit): Sets a specific bit position in a register to 1.
  • CLR (Clear Bit): Clears a specific bit position in a register to 0.
  • CPL (Complement): Inverts all the bits in a register (0s become 1s and vice versa).

 


Comments

Popular posts from this blog

Microcontrollers SEM 2 UNIT 1

Unit 1: 8051 Microcontroller (General Questions and Answers) Question 1 (6 Marks): Differentiate between a microprocessor and a microcontroller. Question 2 (6 Marks): Briefly describe the 8051 microcontroller architecture with the help of a block diagram. Answer: The 8051 microcontroller follows the Harvard architecture, separating program memory from data memory. Key components include: Central Processing Unit (CPU): Processes instructions, performs calculations, and controls program flow. It consists of: Arithmetic Logic Unit (ALU) for arithmetic and logical operations. Control Unit (CU) for fetching, decoding, and executing instructions. Registers for temporary data storage and program control. Question 3 (6 Marks): Explain the functionalities of any three 8051 microcontroller pins with the help of a pin diagram. Answer: Port 0 (P0.0 - P0.7): 8-bit bidirectional I/O port. Each pin can be configured as input or output for connecting with external devices (sensors, LEDs, etc.). ALE (A...

Free hand sketch quality images for Engineering drawing UNIT 6

 Below are easy to draw sketches, better picture quality images for UNIT 6 SEM I Exam Types of gears Fastener Categories Nut types Types of keys (a) Compression spring; (b) Tension spring; (c) Torsion spring; (d) Scroll spring ...

Microcontrollers SEM 2 UNIT 6

 Unit 6: Introduction to Arduino Question  1. Explain the steps involved in installing the Arduino development environment. (6 Marks) The Arduino development environment, also known as the Arduino IDE (Integrated Development Environment), allows you to write and upload code to Arduino boards. Here's how to install it: Steps: Download Arduino IDE Software:  Visit the official Arduino website ( https://www.arduino.cc/en/software ) and download the software installer for your operating system (Windows, macOS, Linux). Run the installer:  Double-click the downloaded installer file and follow the on-screen instructions. This will install the Arduino IDE software on your computer. (Optional) Install additional boards support:  If you're using a non-standard Arduino board, you may need to install additional board definitions. This can be done through the "Boards Manager" within the Arduino IDE. Question...