Google Search

Wednesday, October 27, 2010

MICROCONTROLLER (8051) 16 BIT ADDITION

To write an assembly language program in microcontroller to perform addition between two 16 bit numbers

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 HERE
80 SJMP HERE
4110 FE


















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

0 comments:

Post a Comment