Problem – Write an assembly language program in 8085 microprocessor to find square of 8 bit number. Example –
Assumption – Addresses of input data and out data are 2050 and 3050 respectively. Approach – Combine the content of registers H and L, the resultant content can be used to indirectly point to memory location and that memory location is specified by M. To find square of any number, keep on adding that number in accumulator A which initially contains 0 by that number of times whose square we need to find. Algorithm –
- Assign 20 to register H, 50 to register L and 00 to accumulator A
- Load the content of memory location which is specified by M in register B
- Add content of M in accumulator A and decrement value of B by 01
- Check if B holds 00, if true then store the value of A at memory location 3050 otherwise go to step 3
Program –
MEMORY ADDRESS |
MNEMONICS |
COMMENT |
2000 |
MVI H 20 |
H <- 20 |
2002 |
MVI L 50 |
L <- 50 |
2004 |
MVI A 00 |
A <- 00 |
2006 |
MOV B, M |
B <- M |
2007 |
ADD M |
A <- A + M |
2008 |
DCR B |
B <- B – 01 |
2009 |
JNZ 2007 |
Jump if ZF = 0 |
200C |
STA 3050 |
M[3050] <- A |
200F |
HLT |
END |
Explanation – Registers used A, H, L, B and indirect memory M:
- MVI H 20 – initialize register H with 20
- MVI L 50 – initialize register L with 50
- MVI A 00 – initialize accumulator A with 00
- MOV B, M – moves the content of memory location which is indirectly specified by M in register B
- ADD M – add the content of memory location which is indirectly specified by M in accumulator A
- DCR B – decrement value of register B by 1
- JNZ 2007 – jump to memory location 2007 if ZF = 0, i.e register B does not contain 0
- STA 3050 – stores value of A in 3050
- HLT – stops executing the program and halts any further execution
Advantages:
- Simple and easy to understand logic
- Uses only a few instructions, making it efficient in terms of memory usage and execution time
- Can be easily modified to square larger numbers
Disadvantages:
- Only works for 8-bit numbers
- Can only find the square of positive numbers
- May not be the most efficient method for finding the square of a number, especially for larger numbers. There are faster algorithms, such as the binary method or the Karatsuba algorithm, that can be used to find the square of a number more efficiently.
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
25 Apr, 2023
Like Article
Save Article