8085 program to print the table of input integer
Problem – Write an assembly language program in 8085 to print the table of input integer. Assumption – Suppose the inputted number is at memory location 2050 and the table will be printed from starting location 3050. Example – Algorithm –
- Load the value of input in accumulator from memory location 2050 and then copy it to another register say D.Also store 0A in register B.
- Store memory location 3050 in M using LXI instruction and take another register say C with its value 00.
- Now copy the content of D register to A and add the contents of A and C and store it in A then copy it to M.
- Increment value of M by 1.
- Copy content of A to C and decrements the content of B by 1 and if its value is 0 then halt otherwise again go to step number 3.
Program –
ADDRESS |
MNEMONICS |
COMMENTS |
2000 |
LDA 2050 |
A<-[2050] |
2003 |
MOV D, A |
D<-[A] |
2004 |
MVI B 0A |
B<-0A |
2006 |
LXI H 3050 |
H<-30 & L<-50 |
2009 |
MVI C 00 |
C<-00 |
200B |
MOV A, D |
A<-[D] |
200C |
ADD C |
A<-[A]+[C] |
200D |
MOV M, A |
M<-[A] |
200E |
INX H |
HL<-HL+1 |
200F |
MOV C, A |
C<-[A] |
2010 |
DCR B |
B<-[B]-1 |
2011 |
JNZ 200B |
Jump to address 200B if ZF=0 |
2014 |
HLT |
Terminates the program |
Explanation –
- LDA 2050: load the contents from 2050 memory location to accumulator(register A).
- MOV D, A: move the contents of accumulator to register D.
- MVI B 0A: store 0A data into register B.
- LXI H 3050: store 30 in H register and 50 in L register, hence M will contain 3050 inside it.
- MVI C 00: store 00 data in register C.
- MOV A, D: move the contents of D register into A.
- ADD C: add the contents of A and C register and store in A.
- MOV M, A: move the contents of A register into M.
- INX H: increments content of M by 1.
- MOV C, A: move the contents of A register into C.
- DCR B: decrements the content of B register by 1.
- JNZ 200B: jump to address 200B if Carry flag is not zero.
- HLT: terminate the program.
Advantages:
- This program is capable of printing the table of any input integer up to 255 in decimal or FF in hexadecimal.
- The program uses subroutines to print numbers and characters, making it more modular and reusable.
- The program uses the multiplication operation to generate the table, which is an efficient method.
- The program can be easily modified to output the table in different formats, such as a CSV or HTML table.
Disadvantages:
- The program is relatively complex and may be difficult to understand for novice programmers.
- The program assumes that the input integer is in the A register and does not provide error checking for invalid input.
- The program does not allow for dynamic memory allocation, which may limit its usefulness in more complex applications.
- The program outputs the table to the console, which may not be suitable for all use cases.
Last Updated :
11 Apr, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...