Problema: escriba un programa en lenguaje ensamblador para convertir un número BCD de 2 dígitos a su equivalente binario utilizando el microprocesador 8085.
Ejemplos:
Input : 72H (0111 0010)2 Output : 48H (in hexadecimal) (0011 0000)2 ((4x16)+(8x1))=72
Algoritmo:
- Cargue el número BCD en el acumulador
- Descomprima el número BCD de 2 dígitos en dos dígitos separados. Sea el dígito de la izquierda BCD 1 y el de la derecha BCD 2
- Multiplica BCD 1 por 10 y súmale BCD 2
Si el número BCD de 2 dígitos es 72, entonces su equivalente binario será
7 x OAH + 2 = 46H + 2 = 48H
Pasos:
- Cargue el número BCD desde la ubicación de la memoria (201FH, elección arbitraria) en el acumulador
- Almacene temporalmente el valor del acumulador en B
- Obtenga BCD 2 haciendo AND en el acumulador con 0FH y guárdelo en C
- Restaure el valor original del acumulador moviendo el valor en B a A. Y el acumulador con F0H
- Si el valor en el acumulador es igual a 0, entonces BCD 2 es la respuesta final y lo almacena en la ubicación de memoria, 2020H (arbitrario)
- De lo contrario, mueva el acumulador a la derecha 4 veces para obtener BCD 1 . El siguiente paso es multiplicar BCD 1 por 0AH
- Multiplicación: Mover BCD 1 a D e inicializar E con 0AH como contador. Borre el acumulador a 0 y agregue D a él E número de veces
- Finalmente, agregue C al acumulador y almacene el resultado en 2020H
2020H contiene el resultado.
DIRECCIÓN | ETIQUETA | MNEMOTÉCNICO |
---|---|---|
2000H | LDA201FH | |
2001H | ||
2002H | ||
2003H | MOV B, A | |
2004H | ANI 0FH | |
2005H | ||
2006H | MOV C, A | |
2007H | MOV A, B | |
2008H | ANI F0H | |
2009H | ||
200AH | JZ OMITIR MULTIPLICAR | |
200BH | ||
200CH | ||
200DH | CRR | |
200EH | CRR | |
200FH | CRR | |
2010H | CRR | |
2011H | MOV D, A | |
2012H | XRA A | |
2013H | MVI E, 0AH | |
2014H | ||
2015H | SUMA | AÑADIR D |
2016H | DCR E | |
2017H | SUMA JNZ | |
2018H | ||
2019H | ||
201AH | OMITIR MULTIPLICAR | AÑADIR C |
201BH | ESTA 2020H | |
201CH | ||
201DH | ||
201EH | HLT |
Guarde el número BCD en 201FH. 2020H contiene su equivalente binario.
Publicación traducida automáticamente
Artículo escrito por aganjali10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA