8085 program to multiply two 8 bit numbers using logical instructions
Prerequisite – Logical instructions in 8085 microprocessor Problem – Write a assembly language program multiply two 8 bit numbers and store the result at memory address 3050 in 8085 microprocessor. Example – The value of accumulator(A) after using RLC instruction is:
A = 2n*A
Where n = number of times RLC instruction is used. Assumptions – Assume that the first number is stored at register B, and second number is stored at register C. And the result must not have any carry. Algorithm –
- Assign the value 05 to register B
- Assign the value 04 to register C
- Move the content of B in A
- Rotate accumulator left without carry
- Rotate accumulator left without carry
- Store the content of accumulator at memory address 3050
- Halt of the program
Program –
MEMORY ADDRESS | MNEMONICS | COMMENTS |
---|---|---|
2000 | MVI B 05 | B <- 05 |
2002 | MVI C 04 | C <- 04 |
2004 | MOV A, B | A <- B |
2005 | RLC | rotate the content of A without carry |
2006 | RLC | rotate the content of A without carry |
2007 | STA 3050 | 3050 <- A |
200A | HLT | End of the program |
Explanation –
- MVI B 05: assign the value 05 to B register.
- MVI C 04: assign the value 04 to C register.
- MOV A, B: move the content of register B to register A.
- RLC: rotate the content of accumulator left without carry.
- RLC: rotate the content of accumulator left without carry.
- STA 3050: store the content of register A at memory location 3050
- HLT: stops the execution of the program.
Advantages:
- The program is simple and easy to understand since it only uses a few instructions.
- The program uses only logical instructions to perform the multiplication operation, which reduces the number of registers required.
- The program produces accurate results since it performs a series of bitwise operations to calculate the product.
Disadvantages:
- The program is computationally intensive and time-consuming since it requires several instructions to perform the multiplication operation.
- The program is not very efficient in terms of memory usage since it requires several registers to store the operands and intermediate results.
- The program is not very scalable since it requires a large number of iterations to multiply large numbers, which may cause overflow or underflow conditions.
- The program does not handle overflow or underflow conditions, which may occur if the product of the two numbers is greater than 255.
- The program does not provide any error checking or reporting mechanism, which may make it difficult to identify errors or faults in the program.
Please Login to comment...