ADC[.W] ADC.B | Suma el acarreo al destino |
Sintaxis | ADC dst ADC.B dst |
Operación | dst + C −> dst |
Emulación | ADDC #0,dst ADDC.B #0,dst |
Descripción | El bit C es sumado al operando dst. El contenido anterior de dst se pierde. |
Bits STATUS | N: Se pone a '1' si el resultado es negativo, en caso contrario '0'. Z: Se pone a '1' si el resultado es cero, en otro caso '0'. C: Se pone a '1' si dst se incrementa de 0FFFFh a 0000, en otro caso a '0'. .....Se pone a '1' si dst se incrementa de 0FFh a 00, en otro caso a '0'. V: Se pone a '1' si existe un desbordamiento aritmético, en otro caso '0'. |
Bits de Modo | OSCOFF, CPUOFF, y GIE no se modifican. |
Ejemplo: Un contador de 16-bits apuntado por registro R13 se suma a un contador de 32-bits apuntado por R12:
ADD | @R13, 0(R12) | ; Suma LSDs | ||
ADC | 2(R12) | ; Suma acarreo a MSD |
Como se puede observar, para sumar dos contadores de distinto tamaño y que sea correcta la suma, debemos tener en cuenta el acarreo producido, es por ello que primero se suma la parte baja de ambos contadores y posteriormente se actualiza la parte alta del contador de 32-bits mediante el acarreo que se haya podido producir.
0 comentarios:
Publicar un comentario