Skip to main content

Data Transfer Group Instructions (Part-IV)

LDAX Rp:
  • This instruction copies the contents of memory location to the accumulator.
  • The address of the memory location is not given in the instruction directly.
  • The address of the memory location is given by Rp register pair.
  • The register pair can be BC or DE only.
  • Only high order register is specified for register pair.
  • No flags are affected.
  • It is a one byte instruction.
  • Indirect addressing mode is used.
Example:
If BC = 2000H and (2000H) = 30H
LDAX B ; This instruction loads the contents of memory location 2000H i.e. 30H into A.

If DE = 4200H and (4200H) = A4H
LDAX D ; This instruction loads the contents of memory location 4200H i.e. A4H into A.

STAX Rp: 
  • This instruction copies the contents of accumulator to the memory location.
  • The address of the memory location is not given in the instruction directly.
  • The address of the memory location is given by Rp register pair.
  • The register pair can be BC or DE only.
  • Only high order register is specified for register pair.
  • No flags are affected.
  • It is a one byte instruction.
  • Indirect addressing mode is used.
Example:
If BC = 3000H and A = 80H
STAX B ; This instruction copies the contents of A i.e. 80H to the memory location 3000H.

If DE = 2100H and A = 54H
STAX D ; This instruction copies the contents of A i.e. 54H to the memory location 2100H.

XCHG:
  • This instruction exchanges the contents of H register with D register and L register with E register.
  • No flags are affected.
  • It is a one byte instruction.
  • Register addressing mode is used.
Example:
If DE = 2040H and HL = 2141H
XCHG ; This instruction loads the data as follows: H = 20H, L= 40H, D = 21H and E = 41H.

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      ...