Problema: escriba un programa en lenguaje ensamblador en un microprocesador 8086 para encontrar la raíz cuadrada de un número.
Ejemplo –
Algoritmo –
- Mover los datos de entrada en el registro AX
- Mueva los datos 0000 en CX y FFFF en BX
- Agregue 0002 al contenido de BX
- Incrementa el contenido de CX en 1
- Reste los contenidos de AX y BX
- Si la bandera cero (ZF) no está configurada, vaya al paso 3; de lo contrario, vaya al paso 7
- Almacene los datos de CX para compensar 600
- Deténgase
- M0V AX, [500] se usa para mover los datos del desplazamiento 500 al registro AX
- MOV CX 0000 se usa para mover 0000 para registrar CX
- MOV BX FFFF se usa para mover FFFF para registrar BX
- ADD BX, 02 se usa para agregar BX y 02
- INC CX se utiliza para incrementar el contenido de CX en 1
- SUB AX, BX se usa para restar contenidos de AX con BX
- JNZ 040A se usa para saltar a la dirección 040A si el indicador cero (ZF) es 0
- MOV [600], CX se usa para almacenar el contenido de CX para compensar 600
- HLT se utiliza para finalizar el programa
Programa –
COMPENSAR | MNEMOTÉCNICA | COMENTARIO | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0400 | HACHA DE MOVIMIENTO, [500] | HACHA <- [500] | |||||||||||||||
0404 | MOV CX, 0000 | CX <- 0000 | |||||||||||||||
0407 | MOV BX, FFFF | BX <- FFFF | |||||||||||||||
040A | AÑADIR BX, 02 | BX = BX + 02 | 040E | INC CX | C = C+ 1 | 040F | SUBEJE, BX | AX = AX – BX | 0411 | JNZ 040A | SALTO a 040A si ZF = 0 | 0413 | MOV [600], CX | [600] <- CX | 0417 | HLT | Deténgase |
Explicación –
Publicación traducida automáticamente
Artículo escrito por harshit-chhabra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA