Wednesday 28 September 2011

16 BIT ADDITION


MICROCONTROLLER (8051)
16 BIT ADDITION
AIM:
            To write an assembly language program in microcontroller to perform addition between two 16 bit numbers.
APPARATUS REQUIRED:
                                    8051 kit, power chord
ALGORITHM:
1.      Start the program.
2.      Get the first 8 bit data (MSB) of the 16 bit in accumulator.
3.      Add another 8 bit data (MSB) with the accumulator content.
4.      Move the address location to Data Pointer.
5.      Store the added result (MSB) in the Data Pointer.
6.      Get the first 8 bit data (LSB) of the 16 bit in accumulator.
7.      Add another 8 bit data (LSB) with the accumulator content.
8.      Increment the Data Pointer.
9.      Store the added result (LSB) in the Data Pointer.
10. Stop the program.
PROGRAM:      
ADDRESS
LABEL
OPCODE
MNEMONICS
OPERAND
COMMENTS
4100

C3
CLRC

Clear the content
4101

74
MOV
A, #Data M1
Move the data (MSB) 34 to accumulator.
4102

34



4103

24
ADD
A, #Data M2
Add the content of acc and the second MSB 78 data.
4104

78



4105

90
MOV
DPTR, #4150
Move the address location 4150 to DPTR.
4106

41



4107

50



4108

F0
MOVX
@DPTR,A
Move the content of accumulator to the address location (4150) in DPTR
4109

A3
INC
DPTR
Increment the content of DPTR.
410A

74
MOV
A, #Data L1
Move the data (LSB) 12 to accumulator
410B

12



410C

34
ADDC
A, #Data L2
Add the content of acc and the second (LSB) 56 data.
410D

56



410E

F0
MOVX
@DPTR,A
Move the content of accumulator to the address location (4151) in DPTR
410F

80
HERE:SJMP HERE


4110

FE




INPUT:
4102:34 (MSB)                                                                410B:12 (LSB)
4104:78 (MSB)                                                                410D: 56 (LSB)
OUTPUT:
4150: AC (MSB)                                                        4151:  68 (LSB)

 RESULT:
            Thus an assembly language program for the addition of two 16 bit numbers in microcontroller was written and executed successfully.  

0 comments:

Post a Comment