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.
- Load a 8-bit number from memory 3000 into accumulator
- Move value of accumulator into register H
- Load a 8-bit number from memory 3001 into accumulator
- Move value of accumulator into register D
- Exchange both the register pairs
|2000||LDA||||[A] <- |
|2003||MOV||H, A||[H] <- [A]|
|2004||LDA||||[A] <- |
|2007||MOV||D, A||[D] <- [A]|
Explanation – Registers A, H, D are used for general purpose.
- LDA is used to load accumulator direct using 16-bit address (3 Byte instruction)
- MOV is used to transfer the data (1 Byte instruction)
- XCHG is used to exchange the data of both the register pair (H-L), (D-E) (1 Byte instruction)
- HLT is used to halt the program.
- 8085 program to swap two 16 bit numbers using Direct addressing mode
- 8085 program to swap two 8-bit numbers
- Difference between Direct and Indirect Addressing Modes
- Addressing modes in 8085 microprocessor
- 8085 program to count total odd numbers in series of 10 numbers
- 8085 program to count total even numbers in series of 10 numbers
- 8085 program to add two 8 bit numbers
- 8085 program to add 2-BCD numbers
- 8085 program to add two 16 bit numbers
- 8085 program to multiply two 16-bit numbers
- 8085 program to divide two 8 bit numbers
- 8085 program to add numbers in an array
- 8085 program to divide two 16 bit numbers
- 8085 program to sum of two 8 bit numbers without carry
- 8085 program to multiply two 8 bit numbers
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.