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 –
- Cargue el contenido de la ubicación de memoria 2050 en el registro AL
- Cargue el contenido de la ubicación de memoria 2051 en el registro AH
- Asigne 0004 al par de registros CX
- Gire el contenido de AL ejecutando la instrucción ROL usando CX
- Gire el contenido de AH ejecutando la instrucción ROL usando CX
- Almacene el contenido de AH en la ubicación de memoria 2050
- 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 –
- MOV AL, [2050]: carga el contenido de la ubicación de memoria 2050 en AL
- MOV AH, [2051]: carga el contenido de la ubicación de memoria 2051 en AH
- MOV CX, 0004: asigna 0004 al par de registros CX
- ROL AL, CX: rota el contenido del registro AL dejado por 4 bits, es decir, el valor del par de registros CX
- ROL AH, CX: rota el contenido del registro AH a la izquierda por 4 bits, es decir, el valor del par de registros CX
- MOV [2050], AH: almacena el contenido de AH en la dirección de memoria 2050
- MOV [2051], AL: almacena el contenido de AL en la dirección de memoria 2051
- 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