Problema: escriba un programa en lenguaje ensamblador en el microprocesador 8085 para invertir el número de 16 bits.
Ejemplo: suponga que un número de 16 bits está almacenado en la ubicación de memoria 2050 y 2051.
Algoritmo –
- Cargue el contenido de la ubicación de memoria 2050 en el registro L y el contenido de la ubicación de memoria 2051 en el registro H
- Mover el contenido de L en el acumulador A
- Invierta el contenido de A ejecutando la instrucción RLC 4 veces
- Mover el contenido de A en L
- Mover el contenido de H en A
- Invierta el contenido de A ejecutando la instrucción RLC 4 veces
- Mover el contenido de L en H
- Mover el contenido de A en L
- Almacene el contenido de L en la ubicación de memoria 2050 y el contenido de H en la ubicación de memoria 2051
Programa –
DIRECCIÓN DE MEMORIA | MNEMOTÉCNICA | COMENTARIO |
---|---|---|
2000 | LHLD 2050 | L <- M[2050], H <- M[2051] |
2003 | MOV A, L | A <-L |
2004 | RLC | Rotar el contenido del acumulador dejado por 1 bit sin llevar |
2005 | RLC | Rotar el contenido del acumulador dejado por 1 bit sin llevar |
2006 | RLC | Rotar el contenido del acumulador dejado por 1 bit sin llevar |
2007 | RLC | Rotar el contenido del acumulador dejado por 1 bit sin llevar |
2008 | MOV L, A | L <- A |
2009 | MOV A, H | A <-H |
200A | RLC | Rotar el contenido del acumulador dejado por 1 bit sin llevar |
200B | RLC | Rotar el contenido del acumulador dejado por 1 bit sin llevar |
200C | RLC | Rotar el contenido del acumulador dejado por 1 bit sin llevar |
200D | RLC | Rotar el contenido del acumulador dejado por 1 bit sin llevar |
200E | MOV H, L | H <- L |
200F | MOV L, A | L <- A |
2010 | SHLD 2050 | M[2050] <- L, M[2051] <- H |
2013 | HLT | FINAL |
Explicación: los registros A, H, L se utilizan para fines generales.
- LHLD 2050: carga el contenido de la ubicación de memoria 2050 en L y 2051 en H.
- MOV A, L: mueve el contenido de L en A.
- RLC: desplaza el contenido de A a la izquierda un bit sin acarreo. Repita la instrucción actual 4 veces para que el contenido de A se invierta.
- MOV L, A: mueve el contenido de A en L.
- MOV A, H: mueve el contenido de H en A.
- RLC: desplaza el contenido de A a la izquierda un bit sin acarreo. Repita la instrucción actual 4 veces para que el contenido de A se invierta.
- MOV H, L: mueve el contenido de L en H.
- MOV L, A: mueve el contenido de A en L.
- SHLD 2050: almacena el contenido de L en 2050 y H en 2051.
- HLT: deja de ejecutar el programa y detiene cualquier ejecución posterior.
Publicación traducida automáticamente
Artículo escrito por AmishTandon y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA