- Microprocessor Tutorial
- Microprocessor - Home
- Microprocessor - Overview
- Microprocessor - Classification
- 8085 Microprocessor
- Microprocessor - 8085 Architecture
- 8085 Pin Configuration
- Addressing Modes & Interrupts
- 8085 Instruction Sets
- 8086 Microprocessor
- Microprocessor - 8086 Overview
- 8086 Functional Units
- 8086 Pin Configuration
- 8086 Instruction Sets
- Microprocessor - 8086 Interrupts
- 8086 Addressing Modes
- Multiprocessor Configuration
- Configuration Overview
- 8087 Numeric Data Processor
- I/O Interfacing
- I/O Interfacing Overview
- 8279 Programmable Keyboard
- 8257 DMA Controller
- Microcontrollers - Overview
- Microcontrollers - 8051 Architecture
- 8051 Pin Description
- 8051 Input Output Ports
- Microcontrollers - 8051 Interrupts
- Peripheral Devices
- Programmable Peripheral Interface
- Intel 8255A - Pin Description
- 8253 - Programmable Interval Timer
- 8253/54 - Operational Modes
- Microprocessor Useful Resources
- Microprocessor - Quick Guide
- Microprocessor - Useful Resources
- Microprocessor - Discussion
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Microprocessor - 8085 Instruction Sets
Let us take a look at the programming of 8085 Microprocessor.
Instruction sets are instruction codes to perform some task. It is classified into five categories.
|S.No.||Instruction & Description|
Following is the table showing the list of Control instructions with their meanings.
Following is the table showing the list of Logical instructions with their meanings.
Following is the table showing the list of Branching instructions with their meanings.
Following is the table showing the list of Arithmetic instructions with their meanings.
|5||Data Transfer Instructions
Following is the table showing the list of Data-transfer instructions with their meanings.
8085 – Demo Programs
Now, let us take a look at some program demonstrations using the above instructions −
Adding Two 8-bit Numbers
Write a program to add data at 3005H & 3006H memory location and store the result at 3007H memory location.
Problem demo −
(3005H) = 14H (3006H) = 89H
14H + 89H = 9DH
The program code can be written like this −
LXI H 3005H : "HL points 3005H" MOV A, M : "Getting first operand" INX H : "HL points 3006H" ADD M : "Add second operand" INX H : "HL points 3007H" MOV M, A : "Store result at 3007H" HLT : "Exit program"
Exchanging the Memory Locations
Write a program to exchange the data at 5000M& 6000M memory location.
LDA 5000M : "Getting the contents at5000M location into accumulator" MOV B, A : "Save the contents into B register" LDA 6000M : "Getting the contents at 6000M location into accumulator" STA 5000M : "Store the contents of accumulator at address 5000M" MOV A, B : "Get the saved contents back into A register" STA 6000M : "Store the contents of accumulator at address 6000M"
Arrange Numbers in an Ascending Order
Write a program to arrange first 10 numbers from memory address 3000H in an ascending order.
MVI B, 09 :"Initialize counter" START :"LXI H, 3000H: Initialize memory pointer" MVI C, 09H :"Initialize counter 2" BACK: MOV A, M :"Get the number" INX H :"Increment memory pointer" CMP M :"Compare number with next number" JC SKIP :"If less, don’t interchange" JZ SKIP :"If equal, don’t interchange" MOV D, M MOV M, A DCX H MOV M, D INX H :"Interchange two numbers" SKIP:DCR C :"Decrement counter 2" JNZ BACK :"If not zero, repeat" DCR B :"Decrement counter 1" JNZ START HLT :"Terminate program execution"