CENTRO DE ENSEÑANZA TÉCNICA INDUSTRIAL
PRÁCTICA #1: Separación de bytes y unión de nibbles.
ALAN GIOVANNI PÉREZ MARTÍNEZ
631074
AULA 203
MICROPROCESADORES Y MICROCONTROLADORES
Guadalajara,Jalisco. Marzo, 2010.
PRÁCTICA #1: Separación de bytes y unión de Nibbles.
Objetivo:
Se da un byte en BCD del reloj de tiempo real. El objetivo de la práctica es separar este número en dos nibbles yguardar cada uno por separado en la memoria. Por ejemplo si el byte en BCD que se da es 21, se tiene que separar y guardar en una localidad de memoria el 2 y en otra el 1. Posteriormente se realizará laoperación inversa, es decir, concatenar el 2 con el 1 y guardarlo en otra localidad de memoria.
Dato:
M60
Resultado:
M70:M71
Datos:
M70:M71
Resultado:
M80
Solución Algorítmica:
La primera parte delproblema se resolvió en clase. Simplemente se carga el dato en el acumulador, se le aplica un enmascaramiento utilizando la instrucción AND para quitar uno de los dos nibbles y después se almacena enmemoria. Después volvemos a cargar el dato, se aplica la instrucción NSA para quitar ahora el otro nibble, se repite la aplicación del enmascaramiento con la instrucción AND y se guarda en memoria.Esto se ejemplifica:
Tenemos, por ejemplo, 21 en M60. Se carga en el acumulador. Luego se aplica NSA para “extraer” primero el nibble más significativo, el 2 en este caso. En el acumulador quedaría un‘12’. Ahora para aplicar el enmascaramiento utilizamos AND con el número en hexadecimal 0F (00001111 en binario):
Dato | Nibble más significativo | Nibble menos significativo |
12 | 0 | 0 | 0 | 1| 0 | 0 | 1 | 0 |
AND |
0F | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
= |
02 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
Ahora simplemente se almacena el dato obtenido en la localidad de memoria especificada. Paraobtener el otro ‘digito’, se repite exactamente el mismo proceso, omitiendo el NSA, para obtener el nibble menos significativo del dato original.
Ya teniendo esto, se nos requiere hacer la…