Problema: escriba un programa en lenguaje ensamblador para calcular la suma de los primeros n números naturales utilizando el microprocesador 8085.
Ejemplo –
Input : 04H Output : 0AH as 01+02+03+04 = 10 in decimal => 0AH
La fórmula para calcular la suma de los primeros n números naturales es .
Algoritmo –
- Con n como entrada, increméntelo para obtener n+1.
- Multiplica n por n+1.
- Divida el producto obtenido por 2.
En el microprocesador 8085, no existe ninguna instrucción directa para multiplicar dos números, por lo que la multiplicación se realiza mediante sumas repetidas, ya que 4×5 equivale a 4+4+4+4+4 (es decir, 5 veces).
Entrada: 04H
Sumar 04H 5 veces
Producto: 14H(20 10 )
De manera similar, en el microprocesador 8085, no existe una instrucción directa para dividir dos números, por lo que la división se realiza mediante restas repetidas.
Entrada: 14H
Siga restando 2 de la entrada hasta que se reduzca a 0.
Dado que la resta debe realizarse 10 10 veces antes de que 14H se convierta en 0, el cociente es 10 10 => 0AH.
Pasos –
- Cargue los datos de la ubicación de la memoria (201BH, elección arbitraria) en el acumulador
- Mover estos datos a B
- Incrementa el valor en el acumulador en uno y muévelo al registro C
- Inicializar el acumulador con 0
- Multiplicación: sigue sumando B al acumulador. El número de veces que hay que sumar B es igual al valor de C
- Inicializar B con 00H. B almacenará el cociente de la división
- Inicialice C con 02H. Este es el divisor de la división.
- División: siga restando C de A hasta que A se convierta en 0. Para cada resta, incremente B en uno
- La respuesta final está en B. Muévala a A. Luego almacene el valor de A en 201CH (otra vez elección arbitraria)
201CH contiene la respuesta final.
DIRECCIÓN | ETIQUETA | MNEMOTÉCNICO |
---|---|---|
2000H | LDA 201BH | |
2001H | ||
2002H | ||
2003H | MOV B, A | |
2004H | USD A | |
2005H | MOV C, A | |
2006H | MVI A, 00H | |
2007H | ||
2008H | BUCLE1 | AÑADIR B |
2009H | DCR C | |
200AH | BUCLE JNZ1 | |
200BH | ||
200CH | ||
200DH | MVI C, 02H | |
200EH | ||
200FH | MVI B, 00H | |
2010H | ||
2011H | BUCLE2 | INR B |
2012H | SUB C | |
2013H | JNZ LOOP2 | |
2014H | ||
2015H | ||
2016H | MOV A, B | |
2017H | STA 201CH | |
2018H | ||
2019H | ||
201AH | HLT |
Almacene el valor de n en 201BH. La suma se puede encontrar en 201CH.
Publicación traducida automáticamente
Artículo escrito por aganjali10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA