8085 program to find 1’s and 2’s complement of 16-bit number
Last Updated :
07 May, 2023
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.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...