Problema: escriba un programa en lenguaje ensamblador para sumar tres números de 16 bits almacenados en el registro HL, DE, BC y almacene el resultado en DE con un número mínimo de instrucciones.
Ejemplo –
Suposiciones –
- Los números que se agregarán ya están almacenados en el registro HL, DE, BC
- Los números almacenados en el registro son tales que el resultado final no debe ser mayor que FFFF
DAD D realiza la siguiente tarea:
H <- H + D L <- L + E
La instrucción DAD toma un argumento y ese argumento puede ser el registro B, D, H o SP La instrucción XCHG intercambia el contenido del registro D con H y E con L
Algoritmo –
- Agregue el contenido del registro DE en HL y almacene el resultado en HL con la ayuda de la instrucción DAD
- Mover el contenido del registro B en D y C en E
- Repita el paso 1
- Use la instrucción XCHG para intercambiar el contenido de DE con HL. Obtendremos el resultado en DE
Programa –
DIRECCIÓN DE MEMORIA | MNEMOTÉCNICA | COMENTARIO |
---|---|---|
2000 | PAPÁ D | H <- H + D, L <- L + E |
2001 | MOV D, B | D <-B |
2002 | MOVER E, C | mi <- do |
2003 | PAPÁ D | H <- H + D, L <- L + E |
2004 | XCHG | Intercambiar contenido de HL con DE |
2005 | HLT | FINAL |
Explicación –
- DAD D: agrega el contenido del registro D en H y el registro E en L y almacena el resultado en HL
- MOV D, B – mueve el valor del registro B en el registro D
- MOV E, C mueve el valor del registro C en el registro E
- Igual que el paso 1
- XCHG: intercambia el contenido del registro H con el registro D y L con E.
- 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