8085 programa para hallar la suma de una serie

Problema: escriba un programa para encontrar la suma de una serie donde la serie comienza desde la dirección de memoria 3001 y el recuento de la serie está en la dirección de memoria 3000 donde la dirección inicial del programa dado es 2000 almacena el resultado en la dirección de memoria 4000 .

Ejemplo –

Algoritmo –

  1. Mueva 00 para registrar B inmediatamente para llevar
  2. Cargue los datos de la memoria [3000] en H inmediatamente
  3. Mover el valor de la memoria al registro C
  4. Disminuir C en 1
  5. Aumentar el par HL en 1
  6. Mover el valor de la memoria al acumulador
  7. Aumentar el par HL en 1
  8. Agregar valor de memoria con acumulador
  9. Saltar si no lleva al paso 11
  10. Aumenta el valor del registro B en uno
  11. Disminuye el registro C en 1
  12. Saltar si no es cero al paso 7
  13. Almacene el contenido del acumulador en la memoria [4000] ( resultado )
  14. Mover el contenido del registro B al acumulador
  15. Almacene el contenido del acumulador en la memoria [4001] ( carry )
  16. Deténgase

Programa –

Memoria Mnemotécnica operandos Comentario
2000 IMV segundo, 00 [B] <- 00
2002 LXI H, [3000] [HL] <- [3000]
2005 MOVIMIENTO CM [C] <- [M]
2006 RDC C [C] <- [C] – 1
2007 INX H [HL] <- [HL] + 1
2008 MOVIMIENTO SOY [A] <- [M]
2009 INX H [HL] <- [HL] + 1
200A AGREGAR METRO [A] <- [A] + [M]
200B JNC 200F salta si no lleva
200E USD B [B] <- [B] + 1
200F RDC C [C] <- [C] – 1
2010 JNZ 2009 salta si no cero
2013 ESTA [4000] resultado
2016 MOVIMIENTO un, b [A] <- [B]
2017 ESTA [4001] llevar
201A HLT Deténgase

Explicación: los registros A, B, C, H se utilizan para fines generales.

  1. MVI se usa para cargar un registro dado de 8 bits inmediatamente (instrucción de 2 bytes)
  2. LXI se usa para cargar el par de registros inmediatamente usando una dirección de 16 bits (instrucción de 3 bytes)
  3. MOV se utiliza para transferir los datos del acumulador al registro (cualquiera) o registro (cualquiera) al acumulador (1 byte)
  4. RAR se usa para desplazar ‘A’ a la derecha con acarreo (instrucción de 1 byte)
  5. STA se usa para almacenar datos del acumulador en la memoria directamente usando una dirección de 16 bits (instrucción de 3 bytes)
  6. INR se usa para aumentar el registro dado en 1 (instrucción de 1 byte)
  7. JNC se usa para saltar al paso dado si no hay acarreo (instrucción de 3 bytes)
  8. JNZ se usa para saltar al paso dado si no es cero (instrucción de 3 bytes)
  9. DCR se usa para disminuir el registro dado en 1 (instrucción de 1 byte)
  10. INX se usa para aumentar el par de registros en 1 (instrucción de 1 byte)
  11. ADD se usa para agregar el valor del acumulador con el valor dado (instrucción de 1 byte)
  12. HLT se utiliza para detener el programa

Publicación traducida automáticamente

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