8085 Program to Subtract two 8 Bit numbers

Microprocessor8085

In this program, we will see how to subtract two 8-bit numbers using 8085 microprocessor.

Problem Statement

Write 8085 Assembly language program to subtract two 8-bit numbers and store the result at locations 8050H and 8051H.

Discussion

In 8085, the SUB instruction is used 2’s complemented method for subtraction. When the first operand is larger, the result will be positive. It will not enable the carry flag after completing the subtraction. When the result is negative, then the result will be in 2’s complemented form and carry flag will be enabled. 

We are using two numbers at location 8000H and 8001H. When the numbers are 78H and 5DH, then the result will be (78 – 5D = 1B) and when the numbers are 23H and CFH, then the result will be (23 – CF = 154) Here 1 indicates the number is negative. The actual result is 54H. It is in 2’s complemented form.

Input

first input

Address
Data
.
.
.
.
.
.
8000
78
8001
5D
.
.
.
.
.
.

second input

Address
Data
.
.
.
.
.
.
8000
23
8001
CF
.
.
.
.
.
.

Flow Diagram

Program

Address
HEX Codes
Labels
Mnemonics
Comments
F000
0E,00

MVIC,00H
Clear C register
F002
21,00, 80

LXIH,8000H
Load initial address to get operand
F005
7E

MOVA, M
Load Acc with the memory element
F006
23

INX H
Point to next location
F007
46

MOVB, M
Load B with the second operand
F008
90

SUB B
Subtract B from A
F009
D2,0D, F0

JNC STORE
When CY = 0, go to STORE
F00C
0C

INR C
Increase C by 1
F00D
21,50, 80
STORE
LXIH,8050H
Load the destination address
F010
77

MOVM, A
Store the result
F011
23

INX H
Point to next location
F012
71

MOVM, C
Store the borrow
F013
76

HLT
Terminate the program

Output

first output

Address
Data
.
.
.
.
.
.
8050
1B
8051
00
.
.
.
.
.
.

second output

Address
Data
.
.
.
.
.
.
8050
54
8051
01
.
.
.
.
.
.
raja
Published on 07-Jan-2019 12:54:02
Advertisements