Requisito previo: programa 8086 para encontrar la raíz cuadrada de un número
Problema: escriba un programa para encontrar la raíz cuadrada de un número perfecto donde la dirección inicial del código es 2000 y el número se almacena en la dirección de memoria 3000 y almacena el resultado en la dirección de memoria 3002 .
Ejemplo –
Algoritmo –
- Mueva 0000 para registrar CX inmediatamente
- Mover el valor de la memoria 3000 al registro BX
- Mover CX a AX
- Multiplique el valor del acumulador con CX
- Comparar AX con BX
- Saltar si cero al paso
- Aumentar el registro CX en 1
- Saltar si no hay cero al paso 3
- Mover el contenido del registro CX a la memoria 3002
- Deténgase
Programa –
Memoria | Mnemotécnica | operandos | Comentario |
---|---|---|---|
2000 | MOVIMIENTO | CX, 0000 | [CX] <- 0000 |
2003 | MOVIMIENTO | caja, [3000] | [BX] <- [3000] |
2007 | MOVIMIENTO | HACHA, CX | [AX] <- [CX] |
2009 | mul | CX | [AX] <- [AX] * [CX] |
200B | CMP | HACHA, BX | [AX] – [BX] |
200D | JZ | 2015 | Salta si es cero |
2010 | CÍA | CX | [CX] <- [CX] + 1 |
2012 | JNZ | 2007 | Saltar si no es cero |
2015 | MOVIMIENTO | [3002], CX | [3002] <-CX |
2019 | HLT | Deténgase |
Explicación: los registros AX, BX, CX se utilizan para fines generales.
- MOV se utiliza para transferir los datos
- INC se usa para aumentar el registro dado en 1
- JNZ se usa para saltar al paso dado si no es cero
- JZ se usa para saltar al paso dado si su es cero
- MUL se usa para multiplicar el valor de AX con el registro dado
- CMP se utiliza para comparar el valor de dos registros
- HLT se utiliza para detener el programa