Problema: escriba un programa en lenguaje ensamblador en un microprocesador 8085 para encontrar el valor mínimo del dígito en el número de 8 bits.
Ejemplo: suponga que el número de 8 bits se almacena en la ubicación de memoria 2050 y el dígito de valor mínimo se almacena en la ubicación de memoria 3050.
Algoritmo –
- Cargue el contenido de la ubicación de memoria 2050 en el acumulador A.
- Mueva el contenido de A en el registro B.
- Realice la operación AND del contenido de A con 0F y almacene el resultado en A.
- Mueva el contenido de A en el registro C.
- Mueva el contenido de B en A.
- Invierta el contenido de A usando la instrucción RLC 4 veces.
- Realice la operación AND del contenido de A con 0F y almacene el resultado en A.
- Compare los contenidos de A y C con la ayuda de la instrucción CMP C.
- Verifique si la bandera de acarreo está configurada y luego salte a la ubicación de memoria 2013; de lo contrario, mueva el contenido de C en A. Vaya a la ubicación de memoria 2013.
- Almacene el valor de A en la ubicación de memoria 3050.
Nota: la instrucción CMP C compara el valor de A y C. Si A>C, el indicador de acarreo se restablece; de lo contrario, se establece.
Programa –
DIRECCIÓN DE MEMORIA | MNEMOTÉCNICA | COMENTARIO |
---|---|---|
2000 | LDA 2050 | A <- M[2050] |
2003 | MOV B, A | B <- A |
2004 | AÑO 0F | A <- A (Y) 0F |
2006 | MOV C, A | C <- A |
2007 | MOV A, B | A <-B |
2008 | RLC | Girar el contenido del acumulador 1 bit a la derecha sin llevar |
2009 | RLC | Girar el contenido del acumulador 1 bit a la derecha sin llevar |
200A | RLC | Girar el contenido del acumulador 1 bit a la derecha sin llevar |
200B | RLC | Girar el contenido del acumulador 1 bit a la derecha sin llevar |
200C | AÑO 0F | A <- A (Y) 0F |
200E | CMP C | A-C |
200F | JC 2013 | Saltar si CY = 1 |
2012 | MOV A, C | A <- C |
2013 | STA 3050 | M[3050] <- A |
2016 | HLT | FINAL |
Explicación: los registros A, B y C se utilizan para fines generales.
- LDA 2050: carga el contenido de la ubicación de memoria 2050 en A.
- MOV B, A: mueve el contenido de A en B.
- ANI 0F: realiza la operación AND entre el contenido de A y el valor 0F.
- MOV C, A: mueve el contenido de A en C.
- MOV A, B: mueve el contenido de B en A.
- RLC: desplaza el contenido de A a la izquierda 1 bit sin acarreo. Use esta instrucción 4 veces para invertir el contenido de A.
- ANI 0F: realiza la operación AND entre el contenido de A y el valor 0F.
- CMP C: compare los contenidos de A, C y actualice el valor de la bandera de acarreo en consecuencia.
- JC 2013: salta a la ubicación de memoria 2013 si CY = 1.
- MOV A, C: mueve el contenido de C en A.
- STA 3050: almacena el contenido de A en la ubicación de memoria 3050.
- 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