**Q. Write a program and draw a flow chart to find 1’s complement of a 16-bit numbe**r.(8085 Microprocessor Program)

**Flowchart/Algorithm**

**Program**

Address |
Mnemonics |
Operand |
Opcode |
Comments |

2000 | LHLD | 3000H | 2A | Load H-L pair with data from 3000H. |

2001 | 00 | |||

2002 | 30 | |||

2003 | MOV | A, L | 7D | Move the lower-order from reg. L to reg. A. |

2004 | CMA | 2F | Complement accumulator. | |

2005 | MOV | L, A | 6F | Move the result from reg. A to reg. L. |

2006 | MOV | A, H | 7C | Move the higher-order from reg. H to reg. A. |

2007 | CMA | 2F | Complement accumulator. | |

2008 | MOV | H, A | 67 | Move the result from reg. A to reg. H. |

2009 | SHLD | 3002H | 22 | Store the result at address 3002H. |

200A | 02 | |||

200B | 30 | |||

200C | HLT | 76 | HALT |

**Output**

*Before Execution:*

3000H: 45H

3001H: 6AH

*After Execution:*

3002H: 7AH

3003H: 95H

**Program Explanation**

- This program finds the 1’s complement of a 16-bit number stored in memory 3000H-3001H.
- There is no direct way to find 1’s complement of the 16-bit number. Therefore, this can be accomplished by finding the 1’s complement of two 8-bit numbers.
- Let us assume that the operand stored at memory locations 3000H-3001H is 45H-6AH.
- The operand is loaded into H-L pair from memory locations 3000H-3001H.
- The lower-order is moved from register L to accumulator.
- Its complement is found by using CMA instruction.
- The result obtained is moved back to register L.
- Then, the higher-order is moved from register H to accumulator.
- Its complement is found by using CMA instruction.
- The result obtained is moved back to register H.
- Now, the final result is in H-L pair.
- The result is stored from H-L pair to memory locations 3002H-3003H.

### Related posts:

Program to Sum a series of 8-bit numbers

Program to mask the higher nibble of an 8-bit number

Program to Transfer block of N-bytes from source to destination

Program to Shift Right 8-bit By 1-bit

Program for Generation of Fibonacci series

Program to find the Smallest of two 8-bit numbers

8 Bit Logical Compare Instructions | 8085 Microprocessor

Program to find the smallest number in an array

Software Interrupts in 8085 Microprocessor

Program to Subtract two 8-bit numbers with the borrow