# 8086 program to find the square root of a perfect square root number | Set-2

Prerequisite – 8086 program to find Square Root of a number
Problem – Write a program to find the square root of a perfect number where starting address for code is 2000 and number is stored at 3000 memory address and store result into 3002 memory address.

Example –

Algorithm –

1. Move 0000 to register CX immediately
2. Move value of memory 3000 into register BX
3. Move CX into AX
4. Multiply value of accumulator with CX
5. Compare AX with BX
6. Jump if zero to step
7. Increase CX register by 1
8. Jump if no zero to step 3
9. Move content of register CX into memory 3002
10. Stop

Program –

Memory Mnemonics Operands Comment
2000 MOV CX, 0000 [CX] <- 0000
2003 MOV BX, [3000] [BX] <- [3000]
2007 MOV AX, CX [AX] <- [CX]
2009 MUL CX [AX] <- [AX] * [CX]
200B CMP AX, BX [AX] – [BX]
200D JZ 2015 Jump if zero
2010 INC CX [CX] <- [CX] + 1
2012 JNZ 2007 Jump if not zero
2015 MOV [3002], CX [3002] <- CX
2019 HLT Stop

Explanation – Registers AX, BX, CX, are used for general purpose.

1. MOV is used to transfer the data
2. INC is used to increase given register by 1
3. JNZ is used to jump to the given step if their is no zero
4. JZ is used to jump to the given step if their is zero
5. MUL is used to multiply value of AX with the given register
6. CMP is used to compare the value of two registers
7. HLT is used to halt the program