Open In App

8085 program to find the sum of a series

Last Updated : 07 May, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Problem – Write a program to find the sum of a series where series starts from 3001 memory address and count of series is at 3000 memory address where starting address of the given program is 2000 store result into 4000 memory address. Example – Algorithm –

  1. Move 00 to register B immediately for carry
  2. Load the data of memory [3000] into H immediately
  3. Move value of memory into register C
  4. Decrease C by 1
  5. Increase H-L pair by 1
  6. Move value of memory into accumulator
  7. Increase H-L pair by 1
  8. Add value of memory with accumulator
  9. Jump if no carry to step 11
  10. Increase value of register B by one
  11. Decrease register C by 1
  12. Jump if not zero to step-7
  13. Store content of accumulator into memory [4000] (result)
  14. Move content of register B into accumulator
  15. Store content of accumulator into memory [4001] (carry)
  16. Stop

Program –

Memory Mnemonics Operands Comment
2000 MVI B, 00 [B] <- 00
2002 LXI H, [3000] [H-L] <- [3000]
2005 MOV C, M [C] <- [M]
2006 DCR C [C] <- [C] – 1
2007 INX H [H-L] <- [H-L] + 1
2008 MOV A, M [A] <- [M]
2009 INX H [H-L] <- [H-L] + 1
200A ADD M [A] <- [A] + [M]
200B JNC 200F jump if no carry
200E INR B [B] <- [B] + 1
200F DCR C [C] <- [C] – 1
2010 JNZ 2009 jump if not zero
2013 STA [4000] result
2016 MOV A, B [A] <- [B]
2017 STA [4001] carry
201A HLT   Stop

Explanation – Registers A, B, C, H are used for general purpose.

  1. MVI is used to load an 8-bit given register immediately (2 Byte instruction)
  2. LXI is used to load register pair immediately using 16-bit address (3 Byte instruction)
  3. MOV is used to transfer the data from accumulator to register(any) or register(any) to accumulator (1 Byte)
  4. RAR is used to shift ‘A’ right with carry (1 Byte instruction)
  5. STA is used to store data from accumulator into memory direct using 16-bit address (3 Byte instruction)
  6. INR is used to increase given register by 1 (1 Byte instruction)
  7. JNC is used to jump to the given step if there is no carry (3 Byte instruction)
  8. JNZ is used to jump to the given step if there is not zero (3 Byte instruction)
  9. DCR is used to decrease given register by 1 (1 Byte instruction)
  10. INX is used to increase register pair by 1 (1 Byte instruction)
  11. ADD is used to add value of accumulator with the given value (1 Byte instruction)
  12. HLT is used to halt the program

Advantages of finding the sum:

  • It is a fundamental operation that is widely used in mathematics, physics, and engineering.
     
  • It can help reveal the patterns and relationships between numbers in a sequence, such as their ratios or differences.
     
  • It can be easily calculated using a formula or a loop in a programming language, making it a versatile tool for solving problems.
     

Disadvantages of finding the sum:

  • It may not be practical for very large series, as the result can quickly become very large and difficult to represent or manipulate.
     
  • It may require specialized knowledge or software to handle complex patterns or infinite series, leading to computational complexity and potential errors.
     
  • It may not be useful in certain contexts where addition is not relevant or meaningful, such as in analyzing the frequencies of letters in a text.

Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads