# 8085 programs to find 2’s compliment with carry | Set 2

Problem-1: Find 2’s compliment of an 8 bit number stored at address 2050. Result is stored at address 3050 and 3051. Starting address of program is taken as 2000.

Example –

Algorithm –

1. We are taking compliment of the number using CMA instruction.
2. Then adding 01 to the result.
3. The carry generated while adding 01 is stored at 3051.

Program –

2000 LDA 2050 A←2050
2003 CMA A←compliment of A
2004 INR A A←A+01
2005 MOV L, A L←A
2006 MVI A 00 A←00
2009 MOV H, A H←A
200A SHLD 3050 L→3050, H→3051
200D HLT

Explanation – Registers used: A, H, L

1. LDA 2050 loads content of 2050 in A
2. CMA compliments the contents of A
3. INR A increases A by 01
4. MOV L, A copies contents of A in L
5. MVI A 00 moves 00 in A
6. ADC A adds A, A, Carry and assigns it to A
7. MOV H, A copies contents of A in H
8. SHLD 3050 stores value of H at memory location 3051 and L at 3050
9. HLT stops executing the program and halts any further execution

Problem-2: Find 2’s compliment of a 16 bit number stored at address 2050 and 2051. Result is stored at address 3050, 3051 and 3052. Starting address of program is taken as 2000.

Example –

Algorithm –

1. We are taking compliment of the numbers using CMA instruction.
2. Then adding 0001 to the result using INX instruction.
3. The carry generated while adding 0001 is stored at 3052.

Program –

2000 LHLD 2050 L←2050, H←2051
2003 MOV A, L A←L
2004 CMA A←compliment of A
2005 MOV L, A L←A
2006 MOV A, H A←H
2007 CMA A←Compliment of A
2008 MOV H, A H←A
2009 INX H HL←HL+0001
200A MVI A 00 A←00
200D SHLD 3050 L→3050, H→3051
2010 STA 3052 A→3052
2013 HLT

Explanation – Registers used: A, H, L

1. LHLD 2050 loads content of 2051 in H and content of 2050 in L
2. MOV A, L copies contents of L in A
3. CMA compliments contents of A
4. MOV L, A copies contents of A in L
5. MOV A, H copies contents of H in A
6. CMA compliments contents of A
7. MOV H, A copies contents of A in H
8. INX H adds 0001 in HL
9. MVI A 00 moves 00 in A
10. ADC A adds A, A, Carry and stores result in A
11. SHLD 3050 stores value of H at memory location 3051 and L at 3050
12. STA 3052 stores value of A at memory location 3052
13. HLT stops executing the program and halts any further execution

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.