8086 program to find the square root of a perfect square root number | Set-2
Last Updated :
15 Sep, 2022
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 –
- Move 0000 to register CX immediately
- Move value of memory 3000 into register BX
- Move CX into AX
- Multiply value of accumulator with CX
- Compare AX with BX
- Jump if zero to step
- Increase CX register by 1
- Jump if no zero to step 3
- Move content of register CX into memory 3002
- 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.
- MOV is used to transfer the data
- INC is used to increase given register by 1
- JNZ is used to jump to the given step if there is no zero
- JZ is used to jump to the given step if there is zero
- MUL is used to multiply value of AX with the given register
- CMP is used to compare the value of two registers
- HLT is used to halt the program
Share your thoughts in the comments
Please Login to comment...