Suma de dos registros
La rutina con el nombre “sumando_16x16_no_signo” suma dos números de 16 bits sin signo. Dado que los PIC16F84 y PIC16F873 no cuentan con registros de 16 bits, seutilizan dos registros de 8 bits para representar un número de 16 bits. En el registro “AARGB1” deben ser colocados los 8 bits de menos peso de uno de los números y en el registro “AARGB0” los 8 bits demayor peso. De la misma forma para el segundo numero a sumar, colocar los 8 bits de menos peso en BARGB1 y los de mayor peso en “BARGB0.
El resultado de la suma es entregado en los registros “BARGB0”y “BARGB1”. Si el resultado de la suma es mayor a la máxima magnitud que se puede representar (65536) el bit 7 del registro “sflujo” se activara en nivel alto.
El código para la suma de registrosde 16 bits se muestra en la figura 2.
[pic]
Figura 2. Suma de dos números de 16 bits sin signo
Suma de dos registros de 16 bits con signo
La rutina con el nombre “sumando_16x16_signo” suma dosnúmeros de 16 bits con signo.
Dado que los PIC16F84 y PIC16F873 no cuentan con registros de 16 bits, se utilizan dos registros de 8 bits para representar un número de 16 bits. En el registro “AARGB1”deben ser colocados los 8 bits de menos peso de uno de los números y en el registro “AARGB0” los 8 bits de mayor peso y de la misma forma colocar los 8 bits de menos peso en BARGB1 y los 8 restantesde mayor peso en “BARGB0”. Recuerda que el bit 15 de mayor peso representa el signo del numero por lo que un numero positivo se representa con un “0” y en negativo con un “1”. El resultado de la sumaes entregado en los registros “BARGB0” y “BARGB1”. Si el resultado de la suma es mayor a la máxima magnitud que se puede representar con 16 bits (± 32768) el bit 7 del registro “sflujo” se activará ennivel alto. El código para la suma de registros de 16 bits es el se muestra en la Fig. 4.
[pic]
Figura 4. Suma de dos números de 16 bits sin signo
Operación de resta.
La operación de resta...
Regístrate para leer el documento completo.