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 –
- 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
Please Login to comment...