Programa 8086 para invertir un número de 16 bits usando una operación de 8 bits

Problema: escriba un programa en lenguaje ensamblador en un microprocesador 8086 para invertir un número de 16 bits utilizando una operación de 8 bits.

Ejemplo: suponga que un número de 16 bits está almacenado en la ubicación de memoria 2050 y 2051.

Algoritmo –

  1. Cargue el contenido de la ubicación de memoria 2050 en el registro AL
  2. Cargue el contenido de la ubicación de memoria 2051 en el registro AH
  3. Asigne 0004 al par de registros CX
  4. Gire el contenido de AL ejecutando la instrucción ROL usando CX
  5. Gire el contenido de AH ejecutando la instrucción ROL usando CX
  6. Almacene el contenido de AH en la ubicación de memoria 2050
  7. Almacene el contenido de AL en la ubicación de memoria 2051

Programa –

Dirección de memoria Mnemotécnica Comentarios
400 MOV AL, [2050] AL<-[2050]
404 MOV AH, [2051] AH<-[2051]
408 MOV CX, 0004 CX <- 0004
40B ROL AL, CX Rotar contenido AL dejado por 4 bits (valor de CX)
40D ROL AH, CX Rotar el contenido de AH a la izquierda por 4 bits (valor de CX)
40F MOV [2050], AH [2050]<-AH
413 MOV [2051], AL [2051]<-AL
417 HLT Detener ejecución

Explicación –

  1. MOV AL, [2050]: carga el contenido de la ubicación de memoria 2050 en AL
  2. MOV AH, [2051]: carga el contenido de la ubicación de memoria 2051 en AH
  3. MOV CX, 0004: asigna 0004 al par de registros CX
  4. ROL AL, CX: rota el contenido del registro AL dejado por 4 bits, es decir, el valor del par de registros CX
  5. ROL AH, CX: rota el contenido del registro AH a la izquierda por 4 bits, es decir, el valor del par de registros CX
  6. MOV [2050], AH: almacena el contenido de AH en la dirección de memoria 2050
  7. MOV [2051], AL: almacena el contenido de AL en la dirección de memoria 2051
  8. HLT: deja de ejecutar el programa

Publicación traducida automáticamente

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