8085 Programs
Program 13: Add two 16-bit numbers without considering the carry.
Flowchart:
Start
Load H-L pair with the first
16-bit operand.
Move the first operand to
D-E pair.
Load H-L pair with the
second 16-bit operand.
Add two 16-bit numbers.
Store the 16-bit result from
H-L pair to memory.
Stop
Gursharan Singh Tatla
Page 1 of 2
8085 Programs
Program:
Address
2000
Mnemonics
LHLD
Operand
3000H
Opcode
2A
Remarks
Load H-L pair with 1st operand from 3000H.
2001
00
Lower-order of 3000H.
2002
30
Higher-order of 3000H.
EB
Exchange H-L pair with D-E pair.
2A
Load H-L pair with 2nd operand from 3002H.
2005
02
Lower-order of 3002H.
2006
30
Higher-order of 3002H.
2003
XCHG
2004
LHLD
3002H
2007
DAD
19
Add D-E pair with H-L pair.
2008
SHLD
3004H
22
Store the result at address 3004H.
2009
04
Lower-order of 3004H.
200A
30
Higher-order of 3004H.
76
Halt.
200B
HLT
Explanation:
This program adds two 16-bit operands stored in memory locations 3000H-3001H and
3002H-3003H, without considering the carry produced (if any).
Let us assume that the operands stored at memory locations 3000H-3001H is 02H-04H and
3002H-3003H is 04H-03H.
The H-L pair is loaded with the first 16-bit operand 0204H from memory locations 3000H3001H.
Then, the first 16-bit operand is moved to D-E pair.
The second 16-bit operand 0403H is loaded to H-L pair from memory locations 3002H3003H.
The two operands are added and the result is stored in H-L pair.
The result is stored from H-L pair to memory locations 3004H-3005H.
Output:
Before Execution:
After Execution:
3000H:
02H
3004H:
06H
3001H:
04H
3005H:
07H
3002H:
04H
3003H:
03H
Gursharan Singh Tatla
Page 2 of 2