SlideShare a Scribd company logo
ASSEMBLY LANGUAGE
PROGRAMMING OF 8085
Presentation By: Shehrevar Davierwala
Contact : shehrevar@live.com
Lecturer at GES’S Katgara Polytechnic Institute
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
00111110 ;Copy value 2H in register
A
00000010
00000110 ;Copy value 4H in register
B
00000100
10000000 ;A = A + B
ASSEMBLY LANGUAGE OF 8085
 It uses English like words to convey the
action/meaning called as MNEMONICS
 For e.g.
 MOV to indicate data transfer
 ADD to add two values
 SUB to subtract two values
ASSEMBLY LANGUAGE
PROGRAM TO ADD TWO
NUMBERS
MVI A, 2H;Copy value 2H in register A
MVI B, 4H;Copy value 4H in register B
ADD B ;A = A + B
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!
 Microprocessor cannot understand a program
written in Assembly language
 A program known as Assembler is used to
convert a Assembly language program to
machine language
Assembly
Language
Program
Assembler
Program
Machine
Language
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
ALU
Flags
Instruction
Decoder
Register Array
Memory Pointer
Registers
Timing and Control Unit
16-bit
Address Bus
8-bit Data
Bus
Control Bus
Accumulator (8-bit) Flag Register (8-bit)
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)
S Z AC P CY
16- Lines
Unidirectional
8- Lines
Bidirectional
OVERVIEW: 8085 PROGRAMMING
MODEL
1. Six general-purpose Registers
2. Accumulator Register
3. Flag Register
4. Program Counter Register
5. Stack Pointer Register
1. Six general-purpose registers
 B, C, D, E, H, L
 Can be combined as register pairs to perform 16-bit
operations (BC, DE, HL)
1. Accumulator – identified by name A
 This register is a part of ALU
 8-bit data storage
 Performs arithmetic and logical operations
 Result of an operation is stored in accumulator
3. Flag Register
 This is also a part of ALU
 8085 has five flags named
 Zero flag (Z)
 Carry flag (CY)
 Sign flag (S)
 Parity flag (P)
 Auxiliary Carry flag (AC)
 These flags are five flip-flops in flag
register
 Execution of an arithmetic/logic operation
can set or reset these flags
 Condition of flags (set or reset) can be
tested through software instructions
 8085 uses these flags in decision-making
process
4. Program Counter (PC)
 A 16-bit memory pointer register
 Used to sequence execution of program instructions
 Stores address of a memory location
 where next instruction byte is to be
fetched by the 8085
 when 8085 gets busy to fetch current instruction from
memory
 PC is incremented by one
 PC is now pointing to the address of next
instruction
5. Stack Pointer Register
 a 16-bit memory pointer register
 Points to a location in Stack memory
 Beginning of the stack is defined by loading a 16-bit
address in stack pointer register
3.INSTRUCTION SET OF 8085
 Consists of
 74 operation codes, e.g. MOV
 246 Instructions, e.g. MOV A,B
 8085 instructions can be classified as
1. Data Transfer (Copy)
2. Arithmetic
3. Logical and Bit manipulation
4. Branch
5. Machine Control
1. DATA TRANSFER (COPY)
OPERATIONS
1. Load a 8-bit number in a Register
2. Copy from Register to Register
3. Copy between Register and Memory
4. Copy between Input/Output Port and
Accumulator
5. Load a 16-bit number in a Register pair
6. Copy between Register pair and Stack memory
(COPY)
OPERATIONS /
INSTRUCTIONS
1. Load a 8-bit number 4F in
register B
2. Copy from Register B to
Register A
3. Load a 16-bit number 2050
in Register pair HL
4. Copy from Register B to
Memory Address 2050
5. Copy between Input/Output
Port and Accumulator
MVI B, 4FH
MOV A,B
LXI H, 2050H
MOV M,B
OUT 01H
IN 07H
2. ARITHMETIC OPERATIONS
1. Addition of two 8-bit numbers
2. Subtraction of two 8-bit numbers
3. Increment/ Decrement a 8-bit number
EXAMPLE ARITHMETIC
OPERATIONS /
INSTRUCTIONS
1. Add a 8-bit number 32H to
Accumulator
2. Add contents of Register B to
Accumulator
3. Subtract a 8-bit number 32H
from Accumulator
4. Subtract contents of Register C
from Accumulator
5. Increment the contents of
Register D by 1
6. Decrement the contents of
Register E by 1
ADI 32H
ADD B
SUI 32H
SUB C
INR D
DCR E
3. LOGICAL & BIT
MANIPULATION OPERATIONS
1. AND two 8-bit numbers
2. OR two 8-bit numbers
3. Exclusive-OR two 8-bit numbers
4. Compare two 8-bit numbers
5. Complement
6. Rotate Left/Right Accumulator bits
MANIPULATION
OPERATIONS /
INSTRUCTIONS
1. Logically AND Register H
with Accumulator
2. Logically OR Register L
with Accumulator
3. Logically XOR Register B
with Accumulator
4. Compare contents of
Register C with
Accumulator
5. Complement Accumulator
6. Rotate Accumulator Left
ANA H
ORA L
XRA B
CMP C
CMA
RAL
4. BRANCHING OPERATIONS
These operations are used to control the flow of
program execution
1.Jumps
 Conditional jumps
 Unconditional jumps
1.Call & Return
 Conditional Call & Return
 Unconditional Call & Return
EXAMPLE BRANCHING
OPERATIONS /
INSTRUCTIONS
1. Jump to a 16-bit Address 2080H
if Carry flag is SET
2. Unconditional Jump
3. Call a subroutine with its 16-bit
Address
4. Return back from the Call
5. Call a subroutine with its 16-bit
Address if Carry flag is RESET
6. Return if Zero flag is SET
JC 2080H
JMP 2050H
CALL 3050H
RET
CNC 3050H
RZ
5. MACHINE CONTROL INSTRUCTIONS
These instructions affect the operation of the
processor. For e.g.
HLT Stop program execution
NOP Do not perform any operation
4. WRITING A ASSEMBLY
LANGUAGE PROGRAM
 Steps to write a program
Analyze the problem
Develop program Logic
Write an Algorithm
Make a Flowchart
Write program Instructions using
Assembly language of 8085
PROGRAM 8085 IN ASSEMBLY
LANGUAGE TO ADD TWO 8-BIT
NUMBERS AND STORE 8-BIT RESULT
IN REGISTER C.
1. Analyze the problem
 Addition of two 8-bit numbers to be done
1. Program Logic
 Add two numbers
 Store result in register C
 Example
10011001 (99H) A
+00111001 (39H) D
11010010 (D2H) C
3. ALGORITHM
1. Get two numbers
2. Add them
3. Store result
4. Stop
 Load 1st
no. in register D
 Load 2nd
no. in register E
Translation to 8085
operations
• Copy register D to A
• Add register E to A
• Copy A to register C
• Stop processing
4. MAKE A FLOWCHART
Start
Load Registers D, E
Copy D to A
Add A and E
Copy A to C
Stop
• Load 1st
no. in register D
• Load 2nd
no. in register E
• Copy register D to A
• Add register E to A
• Copy A to register C
• Stop processing
5. ASSEMBLY LANGUAGE PROGRAM
1. Get two numbers
2. Add them
3. Store result
4. Stop
a) Load 1st
no. in register D
b) Load 2nd
no. in register E
a) Copy register D to A
b) Add register E to A
a) Copy A to register C
a) Stop processing
MVI D, 2H
MVI E, 3H
MOV A, D
ADD E
MOV C, A
HLT
PROGRAM 8085 IN ASSEMBLY
LANGUAGE TO ADD TWO 8-BIT
NUMBERS. RESULT CAN BE MORE
THAN 8-BITS.
1. Analyze the problem
 Result of addition of two 8-bit numbers can be 9-bit
 Example
10011001 (99H) A
+10011001 (99H) B
100110010 (132H)
 The 9th
bit in the result is called CARRY bit.
0
 How 8085 does it?
 Adds register A and B
 Stores 8-bit result in A
 SETS carry flag (CY) to indicate carry bit
10011001
10011001
A
B
+
99H
99H
10011001 A1
CY
00110010 99H32H
 Storing result in Register memory
10011001
A
32H1
CY
Register CRegister B
Step-1 Copy A to C
Step-2
a) Clear register B
b) Increment B by 1
2. PROGRAM LOGIC
1. Add two numbers
2. Copy 8-bit result in A to C
3. If CARRY is generated
 Handle it
1. Result is in register pair BC
3. ALGORITHM
1. Load two numbers
in registers D, E
2. Add them
3. Store 8 bit result in
C
4. Check CARRY flag
5. If CARRY flag is
SET
• Store CARRY in
register B
4. Stop
 Load registers D, E
Translation to 8085
operations
• Copy register D to A
• Add register E to A
• Copy A to register C
• Stop processing
• Use Conditional
Jump instructions
• Clear register B
• Increment B
• Copy A to register C
4. MAKE A FLOWCHART
Start
Load Registers D, E
Copy D to A
Add A and E
Copy A to C
Stop
If
CARRY
NOT SET
Clear B
Increment B
False
True
5. ASSEMBLY LANGUAGE PROGRAM
MVI D, 2H
MVI E, 3H
MOV A, D
ADD E
MOV C, A
HLT
• Load registers D, E
• Copy register D to A
• Add register E to A
• Copy A to register C
• Stop processing
• Use Conditional
Jump instructions
• Clear register B
• Increment B
• Copy A to register C
JNC END
MVI B, 0H
INR B
END:
4. ADDRESSING MODES OF 8085
 Format of a typical Assembly language
instruction is given below-
[Label:] Mnemonic [Operands] [;comments]
HLT
MVI A, 20H
MOV M, A ;Copy A to memory location
whose address is stored in
register pair HL
LOAD: LDA 2050H ;Load A with contents of memory
location with address 2050H
READ: IN 07H ;Read data from Input port with
address 07H
 The various formats of specifying operands are
called addressing modes
 Addressing modes of 8085
1. Register Addressing
2. Immediate Addressing
3. Memory Addressing
4. Input/Output Addressing
1. REGISTER ADDRESSING
 Operands are one of the internal registers of
8085
 Examples-
MOV A, B
ADD C
2. IMMEDIATE ADDRESSING
 Value of the operand is given in the instruction
itself
 Example-
MVI A, 20H
LXI H, 2050H
ADI 30H
SUI 10H
3. MEMORY ADDRESSING
 One of the operands is a memory location
 Depending on how address of memory location is
specified, memory addressing is of two types
 Direct addressing
 Indirect addressing
3(A) DIRECT ADDRESSING
 16-bit Address of the memory location is specified
in the instruction directly
 Examples-
LDA 2050H ;load A with contents of
memory location with address
2050H
STA 3050H ;store A with contents of
memory location with address
3050H
3(B) INDIRECT ADDRESSING
 A memory pointer register is used to store the address
of the memory location
 Example-
MOV M, A ;copy register A to memory location
whose address is stored in
register pair HL
30HA 20H
H
50H
L
30H2050H
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-
Opcode Operand Binary Code Hex Code
MOV C, A 0100 1111 4FH
ADD B 1000 0000 80H
HLT 0111 0110 76H
1. TWO-BYTE INSTRUCTIONS
 First byte specifies Operation Code
 Second byte specifies Operand
 Examples-
Opcode Operand Binary Code Hex Code
MVI A, 32H 0011 1110
0011 0010
3EH
32H
MVI B, F2H 0000 0110
1111 0010
06H
F2H
1. THREE-BYTE INSTRUCTIONS
 First byte specifies Operation Code
 Second & Third byte specifies Operand
 Examples-
Opcode Operand Binary Code Hex Code
LXI H, 2050H 0010 0001
0101 0000
0010 0000
21H
50H
20H
LDA 3070H 0011 1010
0111 0000
0011 0000
3AH
70H
30H
HEXADECIMAL NUMBERS AND
STORE IT IN TWO DIFFERENT
LOCATIONS
 LDA 2200H ; Get the packed BCD number
 ANI F0H ; Mask lower nibble
0100 0101 45
1111 0000 F0
---------------
0100 0000 40
 RRC
 RRC
 RRC ; Adjust higher digit as a lower
digit.
 RRC 0000 0100 after 4 rotations
CONTD.
 STA 2300H ; Store the partial result
 LDA 2200H ; Get the original BCD no.
 ANI 0FH; Mask higher nibble
0100 0100 45
0000 1111 0F
---------------
0000 0100 05
 STA 2301H ; Store the result
 HLT ; Terminate program
execution
BLOCK DATA TRANSFER
 MVI C, 0AH ; Initialize counter i.e no. of
bytes
Store the count in Register C, ie
ten
 LXI H, 2200H ; Initialize source memory pointer
Data Starts from 2200 location
 LXI D, 2300H ; Initialize destination memory
pointer
BK: MOV A, M ; Get byte from source memory
block
i.e 2200 to accumulator.
 STAX D ; Store byte in the destination
memory block i.e 2300 as stored in
D-E pair
CONTD.
 INX H ; Increment source memory
pointer
 INX D ; Increment destination
memory pointer
 DCR C ; Decrement counter
to keep track of bytes moved
 JNZ BK ; If counter 0 repeat steps
 HLT ; Terminate program
Ad

More Related Content

What's hot (20)

Architecture of 8086 Microprocessor
Architecture of 8086 Microprocessor  Architecture of 8086 Microprocessor
Architecture of 8086 Microprocessor
Mustapha Fatty
 
Addressing modes of 8051
Addressing modes of 8051Addressing modes of 8051
Addressing modes of 8051
SARITHA REDDY
 
8086 microprocessor-architecture
8086 microprocessor-architecture8086 microprocessor-architecture
8086 microprocessor-architecture
prasadpawaskar
 
8255 PPI
8255 PPI8255 PPI
8255 PPI
deval patel
 
Serial Communication in 8051
Serial Communication in 8051Serial Communication in 8051
Serial Communication in 8051
Sudhanshu Janwadkar
 
Presentation on 8086 Microprocessor
Presentation  on   8086 MicroprocessorPresentation  on   8086 Microprocessor
Presentation on 8086 Microprocessor
Nahian Ahmed
 
Addressing modes of 8086
Addressing modes of 8086Addressing modes of 8086
Addressing modes of 8086
Dr. AISHWARYA N
 
8051 instruction set
8051 instruction set8051 instruction set
8051 instruction set
Andri Prastiyo
 
Timing diagram 8085 microprocessor
Timing diagram 8085 microprocessorTiming diagram 8085 microprocessor
Timing diagram 8085 microprocessor
Velalar College of Engineering and Technology
 
8086-instruction-set-ppt
 8086-instruction-set-ppt 8086-instruction-set-ppt
8086-instruction-set-ppt
jemimajerome
 
8086 micro processor
8086 micro processor8086 micro processor
8086 micro processor
Poojith Chowdhary
 
8086 microprocessor assembler directives.ppt
8086   microprocessor assembler directives.ppt8086   microprocessor assembler directives.ppt
8086 microprocessor assembler directives.ppt
NaveenKumar5162
 
Interfacing external memory in 8051
Interfacing external memory in 8051Interfacing external memory in 8051
Interfacing external memory in 8051
ssuser3a47cb
 
Counters
CountersCounters
Counters
Ketaki_Pattani
 
Instruction set of 8086
Instruction set of 8086Instruction set of 8086
Instruction set of 8086
9840596838
 
SHLD and LHLD instruction
SHLD and LHLD instructionSHLD and LHLD instruction
SHLD and LHLD instruction
Romilkumar Siddhapura
 
Introduction to Interrupts of 8085 microprocessor
Introduction to Interrupts of 8085 microprocessorIntroduction to Interrupts of 8085 microprocessor
Introduction to Interrupts of 8085 microprocessor
RAKESHCHOUDHARY164857
 
8085 microproceesor ppt
8085 microproceesor ppt8085 microproceesor ppt
8085 microproceesor ppt
RJ Aniket
 
Architecture of 8085 microprocessor
Architecture of 8085 microprocessorArchitecture of 8085 microprocessor
Architecture of 8085 microprocessor
AMAN SRIVASTAVA
 
Stack and subroutine
Stack and subroutineStack and subroutine
Stack and subroutine
milandhara
 
Architecture of 8086 Microprocessor
Architecture of 8086 Microprocessor  Architecture of 8086 Microprocessor
Architecture of 8086 Microprocessor
Mustapha Fatty
 
Addressing modes of 8051
Addressing modes of 8051Addressing modes of 8051
Addressing modes of 8051
SARITHA REDDY
 
8086 microprocessor-architecture
8086 microprocessor-architecture8086 microprocessor-architecture
8086 microprocessor-architecture
prasadpawaskar
 
Presentation on 8086 Microprocessor
Presentation  on   8086 MicroprocessorPresentation  on   8086 Microprocessor
Presentation on 8086 Microprocessor
Nahian Ahmed
 
Addressing modes of 8086
Addressing modes of 8086Addressing modes of 8086
Addressing modes of 8086
Dr. AISHWARYA N
 
8086-instruction-set-ppt
 8086-instruction-set-ppt 8086-instruction-set-ppt
8086-instruction-set-ppt
jemimajerome
 
8086 microprocessor assembler directives.ppt
8086   microprocessor assembler directives.ppt8086   microprocessor assembler directives.ppt
8086 microprocessor assembler directives.ppt
NaveenKumar5162
 
Interfacing external memory in 8051
Interfacing external memory in 8051Interfacing external memory in 8051
Interfacing external memory in 8051
ssuser3a47cb
 
Instruction set of 8086
Instruction set of 8086Instruction set of 8086
Instruction set of 8086
9840596838
 
Introduction to Interrupts of 8085 microprocessor
Introduction to Interrupts of 8085 microprocessorIntroduction to Interrupts of 8085 microprocessor
Introduction to Interrupts of 8085 microprocessor
RAKESHCHOUDHARY164857
 
8085 microproceesor ppt
8085 microproceesor ppt8085 microproceesor ppt
8085 microproceesor ppt
RJ Aniket
 
Architecture of 8085 microprocessor
Architecture of 8085 microprocessorArchitecture of 8085 microprocessor
Architecture of 8085 microprocessor
AMAN SRIVASTAVA
 
Stack and subroutine
Stack and subroutineStack and subroutine
Stack and subroutine
milandhara
 

Similar to Programming with 8085 (20)

Programming with 8085-Microprocessor and interfacing
Programming with 8085-Microprocessor and interfacingProgramming with 8085-Microprocessor and interfacing
Programming with 8085-Microprocessor and interfacing
Amitabh Shukla
 
Malp edusat
Malp edusatMalp edusat
Malp edusat
karthikrelax
 
Assemblylanguageprogrammingof8085 100523023329-phpapp02
Assemblylanguageprogrammingof8085 100523023329-phpapp02Assemblylanguageprogrammingof8085 100523023329-phpapp02
Assemblylanguageprogrammingof8085 100523023329-phpapp02
Swati Watve-Phadke
 
Basic programming of 8085
Basic programming of 8085 Basic programming of 8085
Basic programming of 8085
vijaydeepakg
 
1. Instructionset.pptfor engineering student
1. Instructionset.pptfor engineering student1. Instructionset.pptfor engineering student
1. Instructionset.pptfor engineering student
ayushmishraaa09
 
Introduction to 8085 & it's description(includes basic lab experiments)
Introduction to 8085 & it's description(includes basic lab experiments)Introduction to 8085 & it's description(includes basic lab experiments)
Introduction to 8085 & it's description(includes basic lab experiments)
Basil John
 
Assembly language i
Assembly language iAssembly language i
Assembly language i
Vivek Kumar
 
Lec04
Lec04Lec04
Lec04
siddu kadiwal
 
Lec04
Lec04Lec04
Lec04
siddu kadiwal
 
Chapter 7 - Programming Techniques with Additional Instructions
Chapter 7 - Programming Techniques with Additional InstructionsChapter 7 - Programming Techniques with Additional Instructions
Chapter 7 - Programming Techniques with Additional Instructions
cmkandemir
 
Question bank malp 3340302
Question bank malp 3340302Question bank malp 3340302
Question bank malp 3340302
SHAH JAINAM
 
microprocessor Laboratory experiments manual
microprocessor Laboratory experiments manualmicroprocessor Laboratory experiments manual
microprocessor Laboratory experiments manual
Ankit Kumar
 
12 mt06ped008
12 mt06ped008 12 mt06ped008
12 mt06ped008
vijaydeepakg
 
180410227 ae2406-lab-manual-doc
180410227 ae2406-lab-manual-doc180410227 ae2406-lab-manual-doc
180410227 ae2406-lab-manual-doc
homeworkping10
 
Unit 2 Instruction set.pdf
Unit 2 Instruction set.pdfUnit 2 Instruction set.pdf
Unit 2 Instruction set.pdf
HimanshuPant41
 
8085 microprocessor(1)
8085 microprocessor(1)8085 microprocessor(1)
8085 microprocessor(1)
Reevu Pal
 
Microprocessor Lab Manual by Er. Swapnil V. Kaware
Microprocessor Lab Manual by Er. Swapnil V. KawareMicroprocessor Lab Manual by Er. Swapnil V. Kaware
Microprocessor Lab Manual by Er. Swapnil V. Kaware
Prof. Swapnil V. Kaware
 
Microprocessor architecture II
Microprocessor architecture   IIMicroprocessor architecture   II
Microprocessor architecture II
Dr.YNM
 
EE2356 Microprocessor and Microcontroller Lab Manuel
EE2356 Microprocessor and Microcontroller Lab ManuelEE2356 Microprocessor and Microcontroller Lab Manuel
EE2356 Microprocessor and Microcontroller Lab Manuel
Velalar College of Engineering and Technology
 
CH-3 CO-all-about-operating-system(Update).pptx
CH-3 CO-all-about-operating-system(Update).pptxCH-3 CO-all-about-operating-system(Update).pptx
CH-3 CO-all-about-operating-system(Update).pptx
XyzXyz338506
 
Programming with 8085-Microprocessor and interfacing
Programming with 8085-Microprocessor and interfacingProgramming with 8085-Microprocessor and interfacing
Programming with 8085-Microprocessor and interfacing
Amitabh Shukla
 
Assemblylanguageprogrammingof8085 100523023329-phpapp02
Assemblylanguageprogrammingof8085 100523023329-phpapp02Assemblylanguageprogrammingof8085 100523023329-phpapp02
Assemblylanguageprogrammingof8085 100523023329-phpapp02
Swati Watve-Phadke
 
Basic programming of 8085
Basic programming of 8085 Basic programming of 8085
Basic programming of 8085
vijaydeepakg
 
1. Instructionset.pptfor engineering student
1. Instructionset.pptfor engineering student1. Instructionset.pptfor engineering student
1. Instructionset.pptfor engineering student
ayushmishraaa09
 
Introduction to 8085 & it's description(includes basic lab experiments)
Introduction to 8085 & it's description(includes basic lab experiments)Introduction to 8085 & it's description(includes basic lab experiments)
Introduction to 8085 & it's description(includes basic lab experiments)
Basil John
 
Assembly language i
Assembly language iAssembly language i
Assembly language i
Vivek Kumar
 
Chapter 7 - Programming Techniques with Additional Instructions
Chapter 7 - Programming Techniques with Additional InstructionsChapter 7 - Programming Techniques with Additional Instructions
Chapter 7 - Programming Techniques with Additional Instructions
cmkandemir
 
Question bank malp 3340302
Question bank malp 3340302Question bank malp 3340302
Question bank malp 3340302
SHAH JAINAM
 
microprocessor Laboratory experiments manual
microprocessor Laboratory experiments manualmicroprocessor Laboratory experiments manual
microprocessor Laboratory experiments manual
Ankit Kumar
 
180410227 ae2406-lab-manual-doc
180410227 ae2406-lab-manual-doc180410227 ae2406-lab-manual-doc
180410227 ae2406-lab-manual-doc
homeworkping10
 
Unit 2 Instruction set.pdf
Unit 2 Instruction set.pdfUnit 2 Instruction set.pdf
Unit 2 Instruction set.pdf
HimanshuPant41
 
8085 microprocessor(1)
8085 microprocessor(1)8085 microprocessor(1)
8085 microprocessor(1)
Reevu Pal
 
Microprocessor Lab Manual by Er. Swapnil V. Kaware
Microprocessor Lab Manual by Er. Swapnil V. KawareMicroprocessor Lab Manual by Er. Swapnil V. Kaware
Microprocessor Lab Manual by Er. Swapnil V. Kaware
Prof. Swapnil V. Kaware
 
Microprocessor architecture II
Microprocessor architecture   IIMicroprocessor architecture   II
Microprocessor architecture II
Dr.YNM
 
CH-3 CO-all-about-operating-system(Update).pptx
CH-3 CO-all-about-operating-system(Update).pptxCH-3 CO-all-about-operating-system(Update).pptx
CH-3 CO-all-about-operating-system(Update).pptx
XyzXyz338506
 
Ad

More from Shehrevar Davierwala (20)

Introduction_Swift
Introduction_SwiftIntroduction_Swift
Introduction_Swift
Shehrevar Davierwala
 
PsudoCode.pptx
PsudoCode.pptxPsudoCode.pptx
PsudoCode.pptx
Shehrevar Davierwala
 
Number System.pptx
Number System.pptxNumber System.pptx
Number System.pptx
Shehrevar Davierwala
 
Java Script (Module 1).pptx
Java Script (Module 1).pptxJava Script (Module 1).pptx
Java Script (Module 1).pptx
Shehrevar Davierwala
 
Website in Clicks Day 2
Website in Clicks Day 2Website in Clicks Day 2
Website in Clicks Day 2
Shehrevar Davierwala
 
Develop Website in Clicks
Develop Website in ClicksDevelop Website in Clicks
Develop Website in Clicks
Shehrevar Davierwala
 
Build Virtual Assistant Using AI
Build Virtual Assistant Using AI Build Virtual Assistant Using AI
Build Virtual Assistant Using AI
Shehrevar Davierwala
 
Build brand reputation using facebook
Build brand reputation using facebookBuild brand reputation using facebook
Build brand reputation using facebook
Shehrevar Davierwala
 
Digital Marketing Session 2
Digital Marketing Session 2Digital Marketing Session 2
Digital Marketing Session 2
Shehrevar Davierwala
 
Learn Digital Marketing : 0 to Hero Day 1
Learn Digital Marketing :  0 to Hero Day 1 Learn Digital Marketing :  0 to Hero Day 1
Learn Digital Marketing : 0 to Hero Day 1
Shehrevar Davierwala
 
Standard template
Standard templateStandard template
Standard template
Shehrevar Davierwala
 
Digital Marketing for Sustainable Business - Afghan Perspective
Digital Marketing for Sustainable Business - Afghan Perspective  Digital Marketing for Sustainable Business - Afghan Perspective
Digital Marketing for Sustainable Business - Afghan Perspective
Shehrevar Davierwala
 
Developing stunning website in clicks - 2
Developing stunning website in clicks - 2Developing stunning website in clicks - 2
Developing stunning website in clicks - 2
Shehrevar Davierwala
 
Developing stunning website in clicks
Developing stunning website in clicksDeveloping stunning website in clicks
Developing stunning website in clicks
Shehrevar Davierwala
 
Google forms for data analysis
Google forms for data analysisGoogle forms for data analysis
Google forms for data analysis
Shehrevar Davierwala
 
Webdesign session1
Webdesign session1Webdesign session1
Webdesign session1
Shehrevar Davierwala
 
Tech talk webtech
Tech talk webtechTech talk webtech
Tech talk webtech
Shehrevar Davierwala
 
Tech talk php_cms
Tech talk php_cmsTech talk php_cms
Tech talk php_cms
Shehrevar Davierwala
 
Ph pbasics
Ph pbasicsPh pbasics
Ph pbasics
Shehrevar Davierwala
 
Php mysql
Php mysqlPhp mysql
Php mysql
Shehrevar Davierwala
 
Ad

Recently uploaded (20)

accessibility Considerations during Design by Rick Blair, Schneider Electric
accessibility Considerations during Design by Rick Blair, Schneider Electricaccessibility Considerations during Design by Rick Blair, Schneider Electric
accessibility Considerations during Design by Rick Blair, Schneider Electric
UXPA Boston
 
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Christian Folini
 
Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)
Kaya Weers
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptxDevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
Justin Reock
 
Building a research repository that works by Clare Cady
Building a research repository that works by Clare CadyBuilding a research repository that works by Clare Cady
Building a research repository that works by Clare Cady
UXPA Boston
 
Understanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdfUnderstanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdf
Fulcrum Concepts, LLC
 
Slack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teamsSlack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teams
Nacho Cougil
 
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
ICT Frame Magazine Pvt. Ltd.
 
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdfComputer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
fizarcse
 
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptxUiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
anabulhac
 
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Wonjun Hwang
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
Building the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdfBuilding the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdf
Cheryl Hung
 
Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?
Eric Torreborre
 
Developing Product-Behavior Fit: UX Research in Product Development by Krysta...
Developing Product-Behavior Fit: UX Research in Product Development by Krysta...Developing Product-Behavior Fit: UX Research in Product Development by Krysta...
Developing Product-Behavior Fit: UX Research in Product Development by Krysta...
UXPA Boston
 
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Alan Dix
 
Building Connected Agents: An Overview of Google's ADK and A2A Protocol
Building Connected Agents:  An Overview of Google's ADK and A2A ProtocolBuilding Connected Agents:  An Overview of Google's ADK and A2A Protocol
Building Connected Agents: An Overview of Google's ADK and A2A Protocol
Suresh Peiris
 
Agentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community MeetupAgentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community Meetup
Manoj Batra (1600 + Connections)
 
Mastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B LandscapeMastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B Landscape
marketing943205
 
accessibility Considerations during Design by Rick Blair, Schneider Electric
accessibility Considerations during Design by Rick Blair, Schneider Electricaccessibility Considerations during Design by Rick Blair, Schneider Electric
accessibility Considerations during Design by Rick Blair, Schneider Electric
UXPA Boston
 
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Christian Folini
 
Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)
Kaya Weers
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptxDevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
Justin Reock
 
Building a research repository that works by Clare Cady
Building a research repository that works by Clare CadyBuilding a research repository that works by Clare Cady
Building a research repository that works by Clare Cady
UXPA Boston
 
Understanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdfUnderstanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdf
Fulcrum Concepts, LLC
 
Slack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teamsSlack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teams
Nacho Cougil
 
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
ICT Frame Magazine Pvt. Ltd.
 
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdfComputer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
fizarcse
 
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptxUiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
anabulhac
 
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Wonjun Hwang
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
Building the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdfBuilding the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdf
Cheryl Hung
 
Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?
Eric Torreborre
 
Developing Product-Behavior Fit: UX Research in Product Development by Krysta...
Developing Product-Behavior Fit: UX Research in Product Development by Krysta...Developing Product-Behavior Fit: UX Research in Product Development by Krysta...
Developing Product-Behavior Fit: UX Research in Product Development by Krysta...
UXPA Boston
 
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Alan Dix
 
Building Connected Agents: An Overview of Google's ADK and A2A Protocol
Building Connected Agents:  An Overview of Google's ADK and A2A ProtocolBuilding Connected Agents:  An Overview of Google's ADK and A2A Protocol
Building Connected Agents: An Overview of Google's ADK and A2A Protocol
Suresh Peiris
 
Mastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B LandscapeMastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B Landscape
marketing943205
 

Programming with 8085

  • 1. ASSEMBLY LANGUAGE PROGRAMMING OF 8085 Presentation By: Shehrevar Davierwala Contact : shehrevar@live.com Lecturer at GES’S Katgara Polytechnic Institute
  • 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
  • 3. 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
  • 4.  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
  • 5. A MACHINE LANGUAGE PROGRAM TO ADD TWO NUMBERS 00111110 ;Copy value 2H in register A 00000010 00000110 ;Copy value 4H in register B 00000100 10000000 ;A = A + B
  • 6. ASSEMBLY LANGUAGE OF 8085  It uses English like words to convey the action/meaning called as MNEMONICS  For e.g.  MOV to indicate data transfer  ADD to add two values  SUB to subtract two values
  • 7. ASSEMBLY LANGUAGE PROGRAM TO ADD TWO NUMBERS MVI A, 2H;Copy value 2H in register A MVI B, 4H;Copy value 4H in register B ADD B ;A = A + B Note:  Assembly language is specific to a given processor  For e.g. assembly language of 8085 is different than that of Motorola 6800 microprocessor
  • 8. MICROPROCESSOR UNDERSTANDS MACHINE LANGUAGE ONLY!  Microprocessor cannot understand a program written in Assembly language  A program known as Assembler is used to convert a Assembly language program to machine language Assembly Language Program Assembler Program Machine Language Code
  • 9. 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
  • 10. 2. PROGRAMMING MODEL OF 8085 Accumulator ALU Flags Instruction Decoder Register Array Memory Pointer Registers Timing and Control Unit 16-bit Address Bus 8-bit Data Bus Control Bus
  • 11. Accumulator (8-bit) Flag Register (8-bit) 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) S Z AC P CY 16- Lines Unidirectional 8- Lines Bidirectional
  • 12. OVERVIEW: 8085 PROGRAMMING MODEL 1. Six general-purpose Registers 2. Accumulator Register 3. Flag Register 4. Program Counter Register 5. Stack Pointer Register
  • 13. 1. Six general-purpose registers  B, C, D, E, H, L  Can be combined as register pairs to perform 16-bit operations (BC, DE, HL) 1. Accumulator – identified by name A  This register is a part of ALU  8-bit data storage  Performs arithmetic and logical operations  Result of an operation is stored in accumulator
  • 14. 3. Flag Register  This is also a part of ALU  8085 has five flags named  Zero flag (Z)  Carry flag (CY)  Sign flag (S)  Parity flag (P)  Auxiliary Carry flag (AC)
  • 15.  These flags are five flip-flops in flag register  Execution of an arithmetic/logic operation can set or reset these flags  Condition of flags (set or reset) can be tested through software instructions  8085 uses these flags in decision-making process
  • 16. 4. Program Counter (PC)  A 16-bit memory pointer register  Used to sequence execution of program instructions  Stores address of a memory location  where next instruction byte is to be fetched by the 8085  when 8085 gets busy to fetch current instruction from memory  PC is incremented by one  PC is now pointing to the address of next instruction
  • 17. 5. Stack Pointer Register  a 16-bit memory pointer register  Points to a location in Stack memory  Beginning of the stack is defined by loading a 16-bit address in stack pointer register
  • 18. 3.INSTRUCTION SET OF 8085  Consists of  74 operation codes, e.g. MOV  246 Instructions, e.g. MOV A,B  8085 instructions can be classified as 1. Data Transfer (Copy) 2. Arithmetic 3. Logical and Bit manipulation 4. Branch 5. Machine Control
  • 19. 1. DATA TRANSFER (COPY) OPERATIONS 1. Load a 8-bit number in a Register 2. Copy from Register to Register 3. Copy between Register and Memory 4. Copy between Input/Output Port and Accumulator 5. Load a 16-bit number in a Register pair 6. Copy between Register pair and Stack memory
  • 20. (COPY) OPERATIONS / INSTRUCTIONS 1. Load a 8-bit number 4F in register B 2. Copy from Register B to Register A 3. Load a 16-bit number 2050 in Register pair HL 4. Copy from Register B to Memory Address 2050 5. Copy between Input/Output Port and Accumulator MVI B, 4FH MOV A,B LXI H, 2050H MOV M,B OUT 01H IN 07H
  • 21. 2. ARITHMETIC OPERATIONS 1. Addition of two 8-bit numbers 2. Subtraction of two 8-bit numbers 3. Increment/ Decrement a 8-bit number
  • 22. EXAMPLE ARITHMETIC OPERATIONS / INSTRUCTIONS 1. Add a 8-bit number 32H to Accumulator 2. Add contents of Register B to Accumulator 3. Subtract a 8-bit number 32H from Accumulator 4. Subtract contents of Register C from Accumulator 5. Increment the contents of Register D by 1 6. Decrement the contents of Register E by 1 ADI 32H ADD B SUI 32H SUB C INR D DCR E
  • 23. 3. LOGICAL & BIT MANIPULATION OPERATIONS 1. AND two 8-bit numbers 2. OR two 8-bit numbers 3. Exclusive-OR two 8-bit numbers 4. Compare two 8-bit numbers 5. Complement 6. Rotate Left/Right Accumulator bits
  • 24. MANIPULATION OPERATIONS / INSTRUCTIONS 1. Logically AND Register H with Accumulator 2. Logically OR Register L with Accumulator 3. Logically XOR Register B with Accumulator 4. Compare contents of Register C with Accumulator 5. Complement Accumulator 6. Rotate Accumulator Left ANA H ORA L XRA B CMP C CMA RAL
  • 25. 4. BRANCHING OPERATIONS These operations are used to control the flow of program execution 1.Jumps  Conditional jumps  Unconditional jumps 1.Call & Return  Conditional Call & Return  Unconditional Call & Return
  • 26. EXAMPLE BRANCHING OPERATIONS / INSTRUCTIONS 1. Jump to a 16-bit Address 2080H if Carry flag is SET 2. Unconditional Jump 3. Call a subroutine with its 16-bit Address 4. Return back from the Call 5. Call a subroutine with its 16-bit Address if Carry flag is RESET 6. Return if Zero flag is SET JC 2080H JMP 2050H CALL 3050H RET CNC 3050H RZ
  • 27. 5. MACHINE CONTROL INSTRUCTIONS These instructions affect the operation of the processor. For e.g. HLT Stop program execution NOP Do not perform any operation
  • 28. 4. WRITING A ASSEMBLY LANGUAGE PROGRAM  Steps to write a program Analyze the problem Develop program Logic Write an Algorithm Make a Flowchart Write program Instructions using Assembly language of 8085
  • 29. PROGRAM 8085 IN ASSEMBLY LANGUAGE TO ADD TWO 8-BIT NUMBERS AND STORE 8-BIT RESULT IN REGISTER C. 1. Analyze the problem  Addition of two 8-bit numbers to be done 1. Program Logic  Add two numbers  Store result in register C  Example 10011001 (99H) A +00111001 (39H) D 11010010 (D2H) C
  • 30. 3. ALGORITHM 1. Get two numbers 2. Add them 3. Store result 4. Stop  Load 1st no. in register D  Load 2nd no. in register E Translation to 8085 operations • Copy register D to A • Add register E to A • Copy A to register C • Stop processing
  • 31. 4. MAKE A FLOWCHART Start Load Registers D, E Copy D to A Add A and E Copy A to C Stop • Load 1st no. in register D • Load 2nd no. in register E • Copy register D to A • Add register E to A • Copy A to register C • Stop processing
  • 32. 5. ASSEMBLY LANGUAGE PROGRAM 1. Get two numbers 2. Add them 3. Store result 4. Stop a) Load 1st no. in register D b) Load 2nd no. in register E a) Copy register D to A b) Add register E to A a) Copy A to register C a) Stop processing MVI D, 2H MVI E, 3H MOV A, D ADD E MOV C, A HLT
  • 33. PROGRAM 8085 IN ASSEMBLY LANGUAGE TO ADD TWO 8-BIT NUMBERS. RESULT CAN BE MORE THAN 8-BITS. 1. Analyze the problem  Result of addition of two 8-bit numbers can be 9-bit  Example 10011001 (99H) A +10011001 (99H) B 100110010 (132H)  The 9th bit in the result is called CARRY bit.
  • 34. 0  How 8085 does it?  Adds register A and B  Stores 8-bit result in A  SETS carry flag (CY) to indicate carry bit 10011001 10011001 A B + 99H 99H 10011001 A1 CY 00110010 99H32H
  • 35.  Storing result in Register memory 10011001 A 32H1 CY Register CRegister B Step-1 Copy A to C Step-2 a) Clear register B b) Increment B by 1
  • 36. 2. PROGRAM LOGIC 1. Add two numbers 2. Copy 8-bit result in A to C 3. If CARRY is generated  Handle it 1. Result is in register pair BC
  • 37. 3. ALGORITHM 1. Load two numbers in registers D, E 2. Add them 3. Store 8 bit result in C 4. Check CARRY flag 5. If CARRY flag is SET • Store CARRY in register B 4. Stop  Load registers D, E Translation to 8085 operations • Copy register D to A • Add register E to A • Copy A to register C • Stop processing • Use Conditional Jump instructions • Clear register B • Increment B • Copy A to register C
  • 38. 4. MAKE A FLOWCHART Start Load Registers D, E Copy D to A Add A and E Copy A to C Stop If CARRY NOT SET Clear B Increment B False True
  • 39. 5. ASSEMBLY LANGUAGE PROGRAM MVI D, 2H MVI E, 3H MOV A, D ADD E MOV C, A HLT • Load registers D, E • Copy register D to A • Add register E to A • Copy A to register C • Stop processing • Use Conditional Jump instructions • Clear register B • Increment B • Copy A to register C JNC END MVI B, 0H INR B END:
  • 40. 4. ADDRESSING MODES OF 8085  Format of a typical Assembly language instruction is given below- [Label:] Mnemonic [Operands] [;comments] HLT MVI A, 20H MOV M, A ;Copy A to memory location whose address is stored in register pair HL LOAD: LDA 2050H ;Load A with contents of memory location with address 2050H READ: IN 07H ;Read data from Input port with address 07H
  • 41.  The various formats of specifying operands are called addressing modes  Addressing modes of 8085 1. Register Addressing 2. Immediate Addressing 3. Memory Addressing 4. Input/Output Addressing
  • 42. 1. REGISTER ADDRESSING  Operands are one of the internal registers of 8085  Examples- MOV A, B ADD C
  • 43. 2. IMMEDIATE ADDRESSING  Value of the operand is given in the instruction itself  Example- MVI A, 20H LXI H, 2050H ADI 30H SUI 10H
  • 44. 3. MEMORY ADDRESSING  One of the operands is a memory location  Depending on how address of memory location is specified, memory addressing is of two types  Direct addressing  Indirect addressing
  • 45. 3(A) DIRECT ADDRESSING  16-bit Address of the memory location is specified in the instruction directly  Examples- LDA 2050H ;load A with contents of memory location with address 2050H STA 3050H ;store A with contents of memory location with address 3050H
  • 46. 3(B) INDIRECT ADDRESSING  A memory pointer register is used to store the address of the memory location  Example- MOV M, A ;copy register A to memory location whose address is stored in register pair HL 30HA 20H H 50H L 30H2050H
  • 47. 4. INPUT/OUTPUT ADDRESSING  8-bit address of the port is directly specified in the instruction  Examples- IN 07H OUT 21H
  • 48. 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
  • 49. 1. ONE-BYTE INSTRUCTIONS  Includes Opcode and Operand in the same byte  Examples- Opcode Operand Binary Code Hex Code MOV C, A 0100 1111 4FH ADD B 1000 0000 80H HLT 0111 0110 76H
  • 50. 1. TWO-BYTE INSTRUCTIONS  First byte specifies Operation Code  Second byte specifies Operand  Examples- Opcode Operand Binary Code Hex Code MVI A, 32H 0011 1110 0011 0010 3EH 32H MVI B, F2H 0000 0110 1111 0010 06H F2H
  • 51. 1. THREE-BYTE INSTRUCTIONS  First byte specifies Operation Code  Second & Third byte specifies Operand  Examples- Opcode Operand Binary Code Hex Code LXI H, 2050H 0010 0001 0101 0000 0010 0000 21H 50H 20H LDA 3070H 0011 1010 0111 0000 0011 0000 3AH 70H 30H
  • 52. HEXADECIMAL NUMBERS AND STORE IT IN TWO DIFFERENT LOCATIONS  LDA 2200H ; Get the packed BCD number  ANI F0H ; Mask lower nibble 0100 0101 45 1111 0000 F0 --------------- 0100 0000 40  RRC  RRC  RRC ; Adjust higher digit as a lower digit.  RRC 0000 0100 after 4 rotations
  • 53. CONTD.  STA 2300H ; Store the partial result  LDA 2200H ; Get the original BCD no.  ANI 0FH; Mask higher nibble 0100 0100 45 0000 1111 0F --------------- 0000 0100 05  STA 2301H ; Store the result  HLT ; Terminate program execution
  • 54. BLOCK DATA TRANSFER  MVI C, 0AH ; Initialize counter i.e no. of bytes Store the count in Register C, ie ten  LXI H, 2200H ; Initialize source memory pointer Data Starts from 2200 location  LXI D, 2300H ; Initialize destination memory pointer BK: MOV A, M ; Get byte from source memory block i.e 2200 to accumulator.  STAX D ; Store byte in the destination memory block i.e 2300 as stored in D-E pair
  • 55. CONTD.  INX H ; Increment source memory pointer  INX D ; Increment destination memory pointer  DCR C ; Decrement counter to keep track of bytes moved  JNZ BK ; If counter 0 repeat steps  HLT ; Terminate program
  翻译: