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 8-bit number where starting address is 2000 and the number is stored at 3000 memory address and store result into 3001 and 3002 memory address.
Example –
Algorithm –
- Load the data from memory 3000 into A (accumulator)
- Complement content of accumulator
- Store content of accumulator in memory 3001 (1’s complement)
- Add 01 to Accumulator content
- Store content of accumulator in memory 3002 (2’s complement)
- Stop
Program –
Memory | Mnemonics | Operands | Comment |
---|---|---|---|
2000 | LDA | [3000] | [A] <- [3000] |
2003 | CMA | [A] <- [A^] | |
2004 | STA | [3001] | 1’s complement |
2007 | ADI | 01 | [A] <- [A] + 01 |
2009 | STA | [3002] | 2’s complement |
200C | HLT | Stop |
Explanation –
- A is an 8-bit accumulator which is used to load and store the data directly
- LDA is used to load accumulator direct using 16-bit address (3 Byte instruction)
- CMA is used to complement content of accumulator (1 Byte instruction)
- STA is used to store accumulator direct using 16-bit address (3 Byte instruction)
- ADI is used to add data into accumulator immediately (2 Byte instruction)
- HLT is used to halt the program
Please Login to comment...