Problema: escriba un programa en lenguaje ensamblador para agregar números hexadecimales almacenados en la memoria continua o en una array.
Suposición: suponga que el tamaño de la array se almacena en la ubicación de memoria 2050 y la dirección base de la array es 2051. La suma se almacenará en la ubicación de memoria 3050 y el acarreo se almacenará en la ubicación 3051.
Ejemplo –
Algoritmo –
- Cargue la dirección base de la array en el par de registros HL.
- Utilice el tamaño de la array como contador.
- Inicialice el acumulador a 00.
- Agregue el contenido del acumulador con el contenido almacenado en la ubicación de la memoria dada en el par HL.
- Contador de disminución en cada adición.
Programa –
Dirección | Mnemotécnica | Comentarios |
---|---|---|
2000 | LDA 2050 | Un <- [2050] |
2003 | MOV B, A | B <- A |
2004 | LXI H, 2051 | H <- 20 y L <- 51 |
2007 | MVI A, 00 | A <- 00 |
2009 | MVI C, 00 | C <- 00 |
200B | AGREGAME | A <- A+M |
200C | USD L | M <- M+1 |
200D | JNC 2011 | |
2010 | INR C | C <- C+1 |
2011 | DCR B | B <- B-1 |
2012 | JNZ 200B | |
2015 | STA 3050 | 3050 <- A |
2018 | MOV A, C | A <- C |
2019 | STA 3051 | 3051 <- A |
201C | HLT | Termina el programa |
Explicación –
- LDA 2050: acumulador de carga con contenido de ubicación 2050
- MOV B, A: copia el contenido del acumulador al registro B
- LXI H, 2051: almacenar 20 en el registro H y 51 en el registro L
- MVI A, 00: almacenar 00 en el acumulador
- MVI C, 00: almacenar 00 para registrar C
- ADD M: agregue el acumulador con el contenido de la ubicación de la memoria dada en el par de registros HL
- INR L: aumentar la dirección en 1
- JNC 2011: si no lleva, salta a la ubicación 2011; de lo contrario, a la ubicación dada en la PC
- INR C: aumentar el contenido del registro C en 1
- DCR B: disminuir el contenido del registro B en 1
- JNZ 200B: si no es cero, salta a la ubicación 200B; de lo contrario, a la ubicación proporcionada en PC
- STA 3050: almacene el contenido del acumulador en la ubicación de memoria 3050
- MOV A, C: copia el contenido del registro C al acumulador
- STA 3051: almacene el contenido del acumulador en la ubicación de memoria 3051
- HLT: finaliza el programa
Publicación traducida automáticamente
Artículo escrito por Deepanshi_Mittal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA