Programa 8086 para determinar el producto de elementos correspondientes de dos elementos de array

Problema: escriba un programa en el microprocesador 8086 para encontrar el producto de dos conjuntos de n números de 8 bits, donde el tamaño «n» se almacena en el desplazamiento 500 y los números del primer conjunto se almacenan desde el desplazamiento 501 y los números del segundo conjunto se almacenan desde el desplazamiento 601 y almacenan los números de resultado en la primera array, es decir, el desplazamiento 501.

Ejemplo –

Algoritmo –

  1. Almacene 500 en SI y 601 en DI 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 en el registro AL por el valor en el desplazamiento DI.
  5. Almacene el resultado (valor del registro AL) en el desplazamiento de memoria SI.
  6. Aumenta el valor de SI en 1.
  7. Aumente el valor de DI en 1.
  8. Bucle por encima de 5 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 DI, 601 DI<-601
40B MOV AL, [SI] AL<-[SI]
40D [DI] AX=AL*[DI]
40F MOV [SI], AL AL->[SI]
411 INC SI SI<-SI+1
412 INC DI DI<-DI+1
413 BUCLE 40B SALTAR A 40B SI CX!=0 y CX=CX-1
415 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 DI, 600: establezca el valor de DI en 600.
  6. MOV AL, [SI]: carga el valor del desplazamiento SI al registro AL
  7. MUL AL, [DI]: multiplica el valor del registro AL por el contenido en el desplazamiento DI.
  8. MOV [SI], AL: almacena el valor del registro AL en el desplazamiento SI.
  9. INC SI: aumenta el valor de SI en 1.
  10. INC DI: aumenta el valor de DI en 1.
  11. BUCLE 408: salta a la dirección 408 si CX no es 0 y CX=CX-1.
  12. 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 *