Programa 8085 para invertir el número de 8 bits

Problema: Escriba un programa en lenguaje ensamblador en un microprocesador 8085 para invertir números de 8 bits.

 Ejemplo:

  

Suponga que el número que se invertirá se almacena en la ubicación de memoria 2050 y el número invertido se almacena en la ubicación de memoria 3050. 

Algoritmo –

  1. Cargue el contenido de la ubicación de memoria 2050 en el acumulador A
  2. Utilice la instrucción RLC para desplazar el contenido de A en 1 bit sin acarreo. Use esta instrucción 4 veces para invertir el contenido de A
  3. Almacene el contenido de A en la ubicación de memoria 3050

Programa –

DIRECCIÓN DE MEMORIA MNEMOTÉCNICA COMENTARIO

Explicación – Registro A utilizado:

  1. LDA 2050: valor de carga de la ubicación de memoria 2050 en el Acumulador A.
  2. RLC: rotar el contenido del acumulador a la izquierda por 1 bit
  3. RLC: rotar el contenido del acumulador a la izquierda por 1 bit
  4. RLC: rotar el contenido del acumulador a la izquierda por 1 bit
  5. RLC: rotar el contenido del acumulador a la izquierda por 1 bit
  6. STA 3050: almacene el contenido de A en la ubicación de memoria 3050.
  7. HLT: deja de ejecutar el programa y detiene cualquier ejecución posterior.

Otra forma alternativa y sencilla de ejecutar el programa anterior y la magia de las instrucciones de rotación 8085:

Esto se puede hacer usando la instrucción RRC 4 veces .

LDA2050H

CRR

RRC // 4 RRC hacen el mismo trabajo que 4 RLC. Entonces podemos usar cualquiera alternativamente.

CRR

RRC //Después de esta cuarta instrucción RRC, nuestro número de 8 bits se invierte y se almacena en el acumulador.

STA 3050H

HLT

Explicación paso a paso y bit a bit del programa anterior con un ejemplo:

Example :
98H in Binary Written as :
1001 1000 
RLC 1st Time : 0011 0001  {Carry Flag = 1}
RLC 2nd Time : 0110 0010  {Carry Flag = 0}
RLC 3rd Time : 1100 0100  {Carry Flag = 0}
RLC 4th Time : 1000 1001 { Carry Flag = 1}
Converted Number after 4th RLC : 1000 1001 [89H]
Hence our number is reversed from 98H to 89H.

For Example : 98H in Binary Written as :
1001 1000
RRC 1st Time : 0100 1100  {Carry Flag = 0}
RRC 2nd Time : 0010 0110  {Carry Flag = 0}
RRC 3rd Time : 0001 0011 { Carry Flag = 0}
RRC 4th Time : 1000 1001 { Carry Flag = 1}
Converted Number after 4th RRC : 1000 1001 [89H]
Hence our number is reversed from 98H to 89H.
Hence Instead of 4 RLC, we can also use 4 RRC instructions in our code alternatively.

Publicación traducida automáticamente

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