Programa 8085 para contar el número de unos en el número de 8 bits dado

Problema : escriba un programa para contar el número de unos en el registro B de uso de número de 8 bits dado para mostrar el recuento de unos donde la dirección inicial es 2000 y el número se almacena en la dirección de memoria 3000 y almacena el resultado en la dirección de memoria 3001 .

Ejemplo –

Algoritmo –

  1. Mueva 00 para registrar B inmediatamente para contar
  2. Mueva 08 para registrar C inmediatamente para cambiar
  3. Cargue los datos de la memoria [3000] en el acumulador
  4. Rotar ‘A’ a la derecha con acarreo
  5. Salta si no lleva al paso 7
  6. De lo contrario, aumente el registro B en 1
  7. Disminuye el registro C en 1
  8. Saltar si no es cero al paso 4
  9. Mover el contenido del registro B al acumulador
  10. Almacene el contenido del acumulador en la memoria [3001] ( número de conteo )
  11. Deténgase

Programa –

Memoria Mnemotécnica operandos Comentario
2000 IMV segundo, 00 [B] <- 00
2002 IMV C, 08 [C] <- 08
2004 LDA [3000] [A] <- [3000]
2007 RAR girar ‘A’ a la derecha con acarreo
2008 JNC 200C salta si no lleva
200B USD B [B] <- [B] + 1
200C RDC C [C] <- [C] – 1
200D JNZ 2007 salta si no cero
2010 MOVIMIENTO un, b [A] <- [B]
2011 ESTA [3001] número de unos
2014 HLT Deténgase

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

  1. MVI se usa para cargar un registro dado de 8 bits inmediatamente (instrucción de 2 bytes)
  2. LDA se usa para cargar el acumulador directamente 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. 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 *