Assemblylanguageprogrammingof8085 100523023329 Phpapp02
Assemblylanguageprogrammingof8085 100523023329 Phpapp02
Programming of 8085
Unit-2
Topics
1. Introduction
2. Programming model of 8085
3. Instruction set of 8085
4. Example Programs
5. Addressing modes of 8085
6. Instruction & Data Formats of 8085
1. Introduction
• A microprocessor executes instructions given by
the user
• Instructions should be in a language known to
the microprocessor
• Microprocessor understands the language of 0’s
and 1’s only
• This language is called Machine Language
• For e.g.
01001111
– Is a valid machine language instruction of
8085
– It copies the contents of one of the internal
registers of 8085 to another
A Machine language program to
add two numbers
Note:
• Assembly language is specific to a given
processor
• For e.g. assembly language of 8085 is different
than that of Motorola 6800 microprocessor
Microprocessor understands Machine Language only!
Assembly Machine
Assembler
Language Language
Program
Program Code
Low-level/High-level languages
• Machine language and Assembly language are
both
– Microprocessor specific (Machine dependent)
so they are called
– Low-level languages
• Machine independent languages are called
– High-level languages
– For e.g. BASIC, PASCAL,C++,C,JAVA, etc.
– A software called Compiler is required to
convert a high-level language program to
machine code
2. Programming model of 8085
Accumulator 16-bit
Address Bus
Register Array
ALU
Memory Pointer
Flags Registers 8-bit Data
Bus
Instruction
Decoder
Control Bus
Timing and Control Unit
Accumulator (8-bit) Flag Register (8-bit)
S Z AC P CY
B (8-bit) C (8-bit)
D (8-bit) E (8-bit)
H (8-bit) L (8-bit)
Stack Pointer (SP) (16-bit)
Program Counter (PC) (16-bit)
• Stop processing
4. Stop
4. Make a Flowchart
Start
• Load 1st no. in register D
Load Registers D, E • Load 2nd no. in register E
• Copy A to register C
Copy A to C
• Stop processing
Stop
5. Assembly Language Program
1. Get two numbers
a) Load 1st no. in register D MVI D, 2H
b) Load 2nd no. in register E MVI E, 3H
2. Add them
a) Copy register D to A MOV A, D
b) Add register E to A ADD E
3. Store result
MOV C, A
a) Copy A to register C
4. Stop
a) Stop processing
HLT
Program 8085 in Assembly language to add two 8-
bit numbers. Result can be more than 8-bits.
10011001 99H A
+
10011001 99H B
0
1 10011001
00110010 32H
99H A
CY
• Storing result in Register memory
CY A
1 10011001 32H
Register B Register C
Step-1 Copy A to C
Step-2
a) Clear register B
b) Increment B by 1
2. Program Logic
Copy A to C
Stop
5. Assembly Language Program
• Load registers D, E MVI D, 2H
MVI E, 3H
• Copy register D to A
• Add register E to A MOV A, D
•• Copy
Copy A
A to
to register
register C
C ADD E
MOV C, A
H L
A 30H 20H 50H 2050H 30H
4. Input/Output Addressing
• 8-bit address of the port is directly
specified in the instruction
• Examples-
IN 07H
OUT 21H
5. Instruction & Data Formats
8085 Instruction set can be classified
according to size (in bytes) as
1. 1-byte Instructions
2. 2-byte Instructions
3. 3-byte Instructions
1. One-byte Instructions
• Includes Opcode and Operand in the same byte
• Examples-