Programa 8086 para determinar el módulo de los primeros elementos de array correspondientes a otros elementos de array

Problema: escriba un programa en el microprocesador 8086 para determinar el módulo de los elementos n de 8 bits correspondientes de la primera array con n números de 8 bits de la segunda array, donde el tamaño «n» se almacena en el desplazamiento 500 y los números de la primera array se almacenan desde el desplazamiento 501 y los números de la segunda array se almacenan desde la compensación 601 y almacenan los números resultantes en la primera array, es decir, la compensación 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. almacenar 00 en el registro AH.
  5. Divida el valor en el registro AX por el valor en el desplazamiento DI.
  6. Almacene el resultado (valor del registro AH) en el desplazamiento de memoria SI.
  7. Aumenta el valor de SI en 1.
  8. Aumente el valor de DI en 1.
  9. Bucle por encima de 6 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 MOV AH, 00 AH<-00
40F DIV [DI] AX=AX/[DI]
411 MOV [SI], AH AH->[SI]
413 INC SI SI<-SI+1
414 INC DI DI<-DI+1
415 BUCLE 40B SALTAR A 40B SI CX!=0 y CX=CX-1
417 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. MOV AH, 00: establece el valor del registro AH en 00.
  8. DIV [DI]: Divide el valor del registro AX por el contenido en el desplazamiento DI.
  9. MOV [SI], AH: almacena el valor del registro AH en el desplazamiento SI.
  10. INC SI: aumenta el valor de SI en 1.
  11. INC DI: aumenta el valor de DI en 1.
  12. BUCLE 408: salta a la dirección 408 si CX no es 0 y CX=CX-1.
  13. HL: detener

Publicación traducida automáticamente

Artículo escrito por anamika9988 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 *