Skip to main content

8085 Addressing Modes

Addressing modes: The different methods which are used to select or address the operands are called addressing modes or the different modes or ways that a microprocessor uses to access data are called addressing modes.

There are five addressing modes:
  • Immediate addressing mode
  • Register addressing mode
  • Direct addressing mode
  • Indirect addressing mode
  • Implied addressing mode

Immediate addressing mode: 

  • In this addressing mode, 8-bit data or 16-bit data is specified in instruction itself.
  • These instructions can be either two byte or three byte instructions.
  • The instructions containing 'I' indicates immediate addressing mode.
Example: 
MVI C, 31H
LXI H, 3210H

Register addressing mode:

  • In this addressing mode, the source and destination operands are general purpose registers (B, C, D, E, H and L).
  • These instructions are one byte instructions.
Example: 
MOV A, B
PCHL

Direct addressing mode: 

  • In this addressing mode, the 16-bit address of the operand is given within the instruction itself.
  • These instructions are three byte instructions.
Example:
LDA 5600H
STA C200H

Indirect addressing mode:

  • In this addressing mode, the memory address where the operand is located is indicated by the contents of the register pair.
  • These instructions are one byte instructions.
Example:
MOV A, M
LDAX C

Implied addressing mode:

  • In this addressing mode, no operand is required.
  • It is also known as implicit addressing mode.
  • These instructions are one byte instructions.
Example:
RAL
CMA

Comments

Popular posts from this blog

Program to pack the two unpacked BCD numbers

Statement: Pack the two unpacked BCD numbers stored in memory locations 2000H and 2001H and store the result in memory location 2002H. The least significant digit is stored at 2000H. Example: (2000H) = 04H (2001H) = 09H Result = (2002H) = 94H Program: LDA 2001H                        ; Obtain the most significant BCD digit RLC                                    ; Rotate left  RLC                                    ; Rotate left  RLC                                    ; Rotate left  RLC                                    ; Rotate left...

Program to exchange the contents of two memory locations

Statement: Exchange the contents of memory locations 2000H and 2001H. Example:  Initially, (2000H) = 34H (2001H) = 20H After exchanging, (2000H) = 20H (2001H) = 34H Program 1 using direct addressing instructions: LDA 2000H               ; Get the contents of location 2000H into accumulator MOV B, A                  ; Move the contents of accumulator into register B LDA 2001H                ; Get the contents of location 2001H into accumulator STA 2000H                 ; Store the contents of accumulator into location 2000H MOV A, B                  ; Move the contents of register B into accumulator STA 2001H                 ; Store the contents of accumulator into location 2001H HLT  ...

Program to add the contents of two memory locations

Statement: Add the contents of memory locations 2000H and 2001H and place the result in the memory locations 2002H and 2003H. Example: (2000H) = C3H (2001H) = 29H Result = C3H + A9H = 016CH (2002H) = 6CH (2003H) = 01H Program: LXI H, 2000H                   ; HL points to location 2000H MOV A, M                        ; Move the contents of 2000H into accumulator INX H                                ; HL points to location 2001H ADD M                              ; Add the contents of 2001H with the contents of accumulator INX H                                ; HL points to location 2002H MOV M, A      ...