Tutorialspoint.dev

8085 program to swap two 8 bit numbers using Direct addressing mode

Problem – Write a program to swap two 8-bit numbers using direct addressing mode where starting address is 2000 and the first 8-bit number is stored at 3000 and the second 8-bit number is stored at 3001 memory address.

Example –

Algorithm –

  1. Load a 8-bit number from memory 3000 into accumulator
  2. Move value of accumulator into register H
  3. Load a 8-bit number from memory 3001 into accumulator
  4. Move value of accumulator into register D
  5. Exchange both the register pairs
  6. Stop

Program –

Memory Mnemonics Operands Comment
2000 LDA [3000] [A] <- [3000]
2003 MOV H, A [H] <- [A]
2004 LDA [3001] [A] <- [3001]
2007 MOV D, A [D] <- [A]
2008 XCHG [H-L] [D-E]
2009 HLT Stop

Explanation – Registers A, H, D are used for general purpose.

  1. LDA is used to load accumulator direct using 16-bit address (3 Byte instruction)
  2. MOV is used to transfer the data (1 Byte instruction)
  3. XCHG is used to exchange the data of both the register pair (H-L), (D-E) (1 Byte instruction)
  4. HLT is used to halt the program.


This article is attributed to GeeksforGeeks.org

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter