Friday 16 February 2018

Microprocessor-8085:ADDITION/SUBTRACTION/MULTIPLICATION AND DIVISION OF 8 BIT DATA

 8 BIT DATA ADDITION


AIM:

             To add two 8 bit numbers stored at consecutive memory locations.

ALGORITHM:

1.      Initialize memory pointer to data location.
2.      Get the first number from memory in accumulator.
3.      Get the second number and add it to the accumulator.
4.      Store the answer at another memory location.


PROGRAM:

ADDRESS
OPCODE
LABEL
MNEMONICS
OPERAND
COMMENT
8000

START
MVI
C, 00
Clear C reg.
8001




8002


LXI
H, 9000
Initialize HL reg. to 9000
8003




8004




8005


MOV
A, M
Transfer first data to accumulator
8006


INX
H
Increment HL reg. to point next memory location.
8007


ADD
M
Add first number to acc. Content.
8008


JNC
L1
Jump to location if result does not yield carry.
8009




800A




800B


INR
C
Increment C reg.
800C

L1
INX
H
Increment HL reg. to point next memory location.
800D


MOV
M, A
Transfer the result from acc. to memory.
800E


INX
H
Increment HL reg. to point next memory location.
800F


MOV
M, C
Move carry to memory
8010


RST 5

Stop the program






OBSERVATION:

INPUT
OUTPUT
ADDRESS
DATA
ADDRESS
DATA
9000

9002


9001

9003


                

RESULT:

8 bit numbers stored at 9000 &9001 are added and the result stored at 9002 & 9003.


8 BIT DATA SUBTRACTION

AIM:

             To subtract two 8 bit numbers stored at consecutive memory locations.

ALGORITHM:

1.      Initialize memory pointer to data location.
2.      Get the first number from memory in accumulator.
3.      Get the second number and subtract from the accumulator.
4.      If the result yields a borrow,
a.       The content of the acc. is complemented and 01H is added to it (2’s complement).
b.      A register is cleared and the content of that reg. is incremented to store borrow.
5.      If there is no borrow the content of the acc. is directly taken as the result.
6.      Store the answer (in the accumulator and register) at next memory location.


RESULT:

Thus the 8 bit numbers stored at 9000 &9001 are subtracted and the result stored at 9002 & 9003.




PROGRAM:

ADDRESS
OPCODE
LABEL
MNEMONICS
OPERAND
COMMENT
8100

START
MVI
C, 00
Clear C reg.
8101




8102


LXI
H, 9000
Initialize HL reg. to
9000
8103




8104




8105


MOV
A, M
Transfer first data to accumulator
8106


INX
H
Increment HL reg. to point next
 mem. Location.
8107


SUB
M
Subtract first number from acc. Content.
8108


JNC
L1
Jump to location if result does not yield borrow.
8109




810A




810B


INR
C
Increment C reg.
810C


CMA

Complement the Acc. content
810D


ADI
01H
Add 01H to content of  acc.
810E




810F

L1
INX
H
Increment HL reg. to point next mem. Location.
8110


MOV
M, A
Transfer the result from acc. to memory.
8111


INX
H
Increment HL reg. to point next mem. Location.
8112


MOV
M, C
Move carry to mem.
8113


RST 5

Stop the program




OBSERVATION:

INPUT
OUTPUT
ADDRESS
DATA
ADDRESS
DATA
9000

9002


9001

9003




8 BIT DATA MULTIPLICATION


AIM:

             To multiply two 8 bit numbers stored at consecutive memory locations and store the result in memory.

ALGORITHM:

LOGIC: Multiplication can be done by repeated addition.

1.      Initialize memory pointer to data location.
2.      Move multiplicand to a register.
3.      Move the multiplier to another register.
4.      Clear the accumulator.
5.      Add multiplicand to accumulator
6.      Decrement multiplier
7.      Repeat step 5 till multiplier comes to zero.
8.      The result, which is in the accumulator, is stored in a memory location.

RESULT:

Thus the 8-bit multiplication was done in 8085mp using repeated addition method.



PROGRAM:

ADDRESS
OPCODE
LABEL
MNEMONICS

OPERAND
COMMENT






8100

START
LXI
H, 9000
Initialize HL reg. to   9000
8101




8102




Transfer first data to reg. B
8103


MOV
B, M
8104


INX
H
Increment HL reg.  to point next memory location.
8105


MVI
A, 00H
Clear the acc.

8106




8107


MVI
C, 00H
Clear C register for carry


8108




8109

L1
ADD
M
Add multiplicand, multiplier times.
810A


JNC
NEXT
Jump to NEXT if there is no carry
810B




810C




810D


INR
C
Increment C register
810E

NEXT
DCR
B
Decrement B register
810F


JNZ
L1
Jump to L1 if B is not zero.
8110




8111




8112


INX
H
Increment HL reg. to point next memory location.
8113


MOV
M, A
Transfer the result from acc. to memory.
8114


INX
H
Increment HL reg. to point next memory location.
8115


MOV
M, C
Transfer the result from C reg. to  memory.
8116


RST 5

Stop the program



OBSERVATION:

INPUT
OUTPUT
ADDRESS
DATA
ADDRESS
DATA
9000

9002


9001

9003



 8 BIT DIVISION

AIM:

            To divide two 8-bit numbers and store the result in memory.

ALGORITHM:

LOGIC: Division is done using the method repeated subtraction.

1.      Load Divisor and Dividend
2.      Subtract divisor from dividend
3.      Count the number of times of subtraction which equals the quotient
4.      Stop subtraction when the dividend is less than the divisor .The dividend now becomes the remainder. Otherwise go to step 2.
5.      Stop the program execution.


RESULT:

            An ALP was written for 8-bit division using repeated subtraction method and executed using 8085m p kits



PROGRAM:


ADDRESS
OPCODE
LABEL
MNEMONICS
OPERAND
COMMENTS
8100


MVI
B,00
Clear B register for quotient
8101




8102


LXI
H,9000
Initialize HL reg. to 9000H
8103




8104




8105


MOV
A,M
Transfer dividend to acc.
8106


INX
H
Increment HL reg.  to point next memory location.
8107

LOOP
SUB
M
Subtract divisor from dividend
8108


INR
B
Increment B register
8109


JNC
LOOP
Jump to LOOP  if result does not yield borrow
810A




810B




810C


ADD
M
Add divisor to acc.
810D


DCR
B
Decrement B register
810E


INX
H
Increment HL reg. to point next memory location.
810F


MOV
M,A
Transfer the remainder from acc. to memory.
8110


INX
H
Increment HL reg. to point next memory location.
8111


MOV
M,B
Transfer the quotient from B reg. to memory.
8112


RST 5

Stop the program



OBSERVATION:

INPUT
OUTPUT
ADDRESS
DATA
ADDRESS
DATA
9000

9002

9001

9003





No comments:

Post a Comment