Problema: escriba un programa en lenguaje ensamblador en un microprocesador 8086 para encontrar la suma de dígitos de un número de 8 bits usando una operación de 8 bits.
Ejemplo: suponga que el número de 8 bits se almacena en la ubicación de memoria 2050.
Suposiciones: las direcciones de los datos de entrada y los datos de salida son 2050 y 2051 respectivamente.
Algoritmo –
- Cargue el contenido de la ubicación de memoria 2050 en el registro AL
- Copie el contenido del registro AL para registrar AH
- Asigne 0004 al par de registros CX
- Realice la operación AND en el contenido de AL con 0F y almacene el resultado en AL
- Gire el contenido de AH ejecutando la instrucción ROL usando CX
- Realice la operación AND en el contenido de AH con 0F y almacene el resultado en AH
- Agregue contenido AL y AH y almacene el resultado en AL
- 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, AL | AH<-AL |
406 | MOV CX, 0004 | CX <- 0004 |
409 | Y AL, 0F | AL <- AL & 0F |
40B | ROL AH, CX | Rotar el contenido de AH a la izquierda por 4 bits (valor de CX) |
40D | Y AH, 0F | AH <- AH y 0F |
40F | AGREGAR AL, AH | AL<-AL+AH |
411 | MOV [2051], AL | [2051]<-AL |
415 | HLT | Detener ejecución |
Explicación –
- MOV AL, [2050]: carga el contenido de la ubicación de memoria 2050 en AL
- MOV AH, AL: copiar contenido del registro AL al registro AH
- MOV CX, 0004: asigna 0004 al par de registros CX
- AND AL, 0F: realiza la operación AND en el contenido de AL con 0F y almacena el resultado en AL
- ROL AH, CX: rota el contenido del registro AH a la izquierda por 4 bits, es decir, el valor del par de registros CX
- AND AH, 0F: realiza la operación AND en el contenido de AH con 0F y almacena el resultado en AH
- AGREGAR AL, AH: agregue contenido AL y AH y almacene el resultado en AL
- 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