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 –
- We are taking compliment of the number using CMA instruction.
- Then adding 01 to the result.
- The carry generated while adding 01 is stored at 3051.
Program –
Memory Address | Mnemonics | Comment |
---|---|---|
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 |
2008 | ADC A | A←A+A+Carry |
2009 | MOV H, A | H←A |
200A | SHLD 3050 | L→3050, H→3051 |
200D | HLT |
Explanation – Registers used: A, H, L
- LDA 2050 loads content of 2050 in A
- CMA compliments the contents of A
- INR A increases A by 01
- MOV L, A copies contents of A in L
- MVI A 00 moves 00 in A
- ADC A adds A, A, Carry and assigns it to A
- MOV H, A copies contents of A in H
- SHLD 3050 stores value of H at memory location 3051 and L at 3050
- 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 –
- We are taking compliment of the numbers using CMA instruction.
- Then adding 0001 to the result using INX instruction.
- The carry generated while adding 0001 is stored at 3052.
Program –
Memory Address | Mnemonics | Comment |
---|---|---|
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 |
200C | ADC A | A←A+A+Carry |
200D | SHLD 3050 | L→3050, H→3051 |
2010 | STA 3052 | A→3052 |
2013 | HLT |
Explanation – Registers used: A, H, L
- LHLD 2050 loads content of 2051 in H and content of 2050 in L
- MOV A, L copies contents of L in A
- CMA compliments contents of A
- MOV L, A copies contents of A in L
- MOV A, H copies contents of H in A
- CMA compliments contents of A
- MOV H, A copies contents of A in H
- INX H adds 0001 in HL
- MVI A 00 moves 00 in A
- ADC A adds A, A, Carry and stores result in A
- SHLD 3050 stores value of H at memory location 3051 and L at 3050
- STA 3052 stores value of A at memory location 3052
- HLT stops executing the program and halts any further execution
Refer for – 8085 program to find 1’s and 2’s complement of 8-bit number
8085 program to find 1’s and 2’s complement of 16-bit number
leave a comment
0 Comments