Problema: escriba un programa en lenguaje ensamblador en un microprocesador 8085 para contar la cantidad de elementos que son menores que 0A en una serie de 10 números.
Ejemplo –
Suposición: la serie de 10 números se almacena desde la ubicación de memoria inicial 2050. El valor de conteo se almacena en la ubicación de memoria 3050
Algoritmo –
- Inicialice el registro H con 20 y el registro L con 4F para que la memoria indirecta apunte a la ubicación de memoria 204F.
- Inicialice el registro C con 00 y el registro D con 0A.
- Incrementa la memoria indirecta en 01.
- Mueva el contenido de M en el acumulador A.
- Compare el contenido de A con 0A con la ayuda de la instrucción CPI . Esta instrucción actualizará las banderas de 8085.
- Verifique si el indicador de acarreo está establecido, si es verdadero, incremente el contenido de C en 01.
- Contenido decrementado de D por 01.
- Compruebe si se restablece el indicador cero, si es verdadero, vaya al paso 3.
- Mueva el contenido de C a A.
- Almacene el contenido de A en la ubicación de memoria 3050.
Programa –
DIRECCIÓN DE MEMORIA | MNEMOTÉCNICA | COMENTARIO |
---|---|---|
2000 | LXI H 204F | H <- 20, L <- 4F |
2003 | MVI C, 00 | C <- 00 |
2005 | MVI D, 0A | D <- 0A |
2007 | INXH | METRO <- METRO + 01 |
2008 | MOV A, M | A <-M |
2009 | IPC 0A | A-0A |
200B | JNC 200F | Saltar si CY = 0 |
200E | INR C | C <- C+ 01 |
200F | DCR D | D <- D – 01 |
2010 | JNZ 2007 | Saltar si ZF = 0 |
2013 | MOV A, C | A <- C |
2014 | STA 3050 | M[3050] <- A |
2017 | HLT | FINAL |
Explicación: los registros A, C, D, H, L se utilizan para fines generales.
- LXI H 204F: asigna 20 al registro H y 4F al registro L
- MVI C, 00: asigna 00 al registro C
- MVI D, 0A: asigna 0A al registro D
- INX H: incrementa la ubicación de la memoria indirecta en 01
- MOV A, M: mueve el contenido de la ubicación de memoria indirecta M al acumulador A
- CPI 0A: resta 0A del contenido de A y actualiza las banderas de 8085
- JNC 200F: salta a la ubicación de memoria 200F si CY = 0
- INR C: incrementa el contenido de C en 01
- DCR D: decrementar el contenido de D en 01
- JNZ 2007: salta a la ubicación de memoria 2007 si ZF = 0
- MOV A, C: mueve el contenido de C a A
- STA 3050: almacene el contenido de A en la ubicación de memoria 3050
- HLT: deja de ejecutar el programa y detiene cualquier ejecución adicional
Publicación traducida automáticamente
Artículo escrito por AmishTandon y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA