8085 program to find 1’s and 2’s complement of 16-bit number
Prerequisite – 8085 program to find 1’s and 2’s complement of 8-bit number Problem – – Write a program to find 1’s and 2’s complement of 16-bit number where starting address is 2000 and the number is stored at 3000 memory address and store result into 3002 and 3004 memory address. Example –
Algorithm –
- Load a 16-bit number from memory 3000 into a register pair (H-L)
- Move content of register L to accumulator
- Complement content of accumulator
- Move content of accumulator to register L
- Move content of register H to accumulator
- Complement content of accumulator
- Move content of accumulator to register H
- Store content of register pair in memory 3002 (1’s complement)
- Increment content of register pair by 1
- Store content of register pair in memory 3004 (2’s complement)
- Stop
Program –
Memory |
Mnemonics |
Operands |
Comment |
2000 |
LHLD |
[3000] |
[H-L] <- [3000] |
2003 |
MOV |
A, L |
[A] <- [L] |
2004 |
CMA |
|
[A] <- [A^] |
2005 |
MOV |
L, A |
[L] <- [A] |
2006 |
MOV |
A, H |
[A] <- [H] |
2007 |
CMA |
|
[A] <- [A^] |
2008 |
MOV |
H, A |
[H] <- [A] |
2009 |
SHLD |
[3002] |
1’s complement |
200C |
INX |
H |
[H-L] <- [H-L] + 1 |
200D |
SHLD |
[3004] |
2’s complement |
2010 |
HLT |
|
Stop |
Explanation –
- A is an 8-bit accumulator which is used to load and store the data
- LHLD is used to load register pair H-L direct using 16-bit address (3 Byte instruction)
- MOV is used to transfer the data from accumulator to register(any) or register(any) to accumulator (1 Byte)
- CMA is used to complement content of accumulator (1 Byte instruction)
- SHLD is used to store data from register pair H-L into memory direct using 16-bit address (3 Byte instruction)
- INX is used to increase H-L register pair by 1 (1 Byte instruction)
- HLT is used to halt the program
Advantages of using 1’s and 2’s complement:
- They are widely used in digital circuits and computer architecture to represent negative numbers.
- They are simple and efficient methods for representing negative numbers and performing arithmetic operations on them.
- They require no extra hardware or memory to perform the negation operation, unlike other methods such as sign and magnitude.
Disadvantages of using 1’s and 2’s complement:
- The 1’s complement has two representations for zero (+0 and -0), which can lead to confusion and errors.
- The 2’s complement method requires an extra step of adding 1 to the 1’s complement, which may cause overflow errors if the number of bits used is not sufficient.
- The use of 1’s and 2’s complement can make certain operations more complex, such as division and comparison of signed numbers.
Last Updated :
07 May, 2023
Like Article
Save Article