Programa 8086 para determinar cuadrados de números en una array de n números

Problema: escriba un programa en el microprocesador 8086 para averiguar los cuadrados de n números de 8 bits, donde el tamaño «n» se almacena en el desplazamiento 500 y los números se almacenan desde el desplazamiento 501 y almacenan los números resultantes en el desplazamiento 501 (suponiendo que los cuadrados resulta estar en el límite de solo 8 bits).

Ejemplo –

Algoritmo –

  1. Almacene 500 en SI y cargue datos desde el desplazamiento 500 para registrar CL y establezca el registro CH en 00 (para contar).
  2. Aumenta el valor de SI en 1.
  3. Cargue el primer número (valor) del siguiente desplazamiento (es decir, 501) para registrar AL.
  4. Multiplique el valor del registro AL por sí mismo.
  5. Almacene el resultado (valor del registro AL) en el desplazamiento de memoria SI.
  6. Aumenta el valor de SI en 1.
  7. Bucle por encima de 2 hasta que el registro CX obtenga 0.

Programa –

DIRECCIÓN DE MEMORIA MNEMOTÉCNICA COMENTARIO
400 MOV SI, 500 SI<-500
403 CL MOV, [SI] CL<-[SI]
405 CA MOV, 00 CH<-00
407 INC SI SI<-SI+1
408 MOV AL, [SI] AL<-[SI]
40A MUL AL AX=AL*AL
40C MOV [SI], AL AL->[SI]
40E INC SI SI<-SI+1
40F BUCLE 408 SALTAR A 408 SI CX!=0 y CX=CX-1
411 HLT final

Explicación –

  1. MOV SI, 500: establezca el valor de SI en 500
  2. MOV CL, [SI]: cargar datos desde el desplazamiento SI al registro CL
  3. MOV CH, 00: establece el valor del registro CH en 00
  4. INC SI: aumenta el valor de SI en 1.
  5. MOV AL, [SI]: carga el valor del desplazamiento SI al registro AL
  6. MUL AL: multiplica el valor del registro AL por AL.
  7. MOV [SI], AL: almacena el valor del registro AL en el desplazamiento SI.
  8. INC SI: aumenta el valor de SI en 1.
  9. BUCLE 408: salta a la dirección 408 si CX no es 0 y CX=CX-1.
  10. HL: detener

Publicación traducida automáticamente

Artículo escrito por Amber_Saxena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *