Usa la instruccion " adc ", es igual que add , pero tiene en cuenta el acarreo de la operacion anterior(se supone que es una suma, la operacion anterior).
Así podras hacer sumas de tropecientosmilbits, claro que no creo que sea la manera óptima de trabajar con sumas, seguramente hay instrucciones a partir de la version 386 que son capaces de trabajar con palabras dobles.
Esto te puede servir cuando trabajas ya con numeros similares al "long long" del C estandarizado moderno, que tiene 12 o mas bytes.
Para restar hay una operacion que hace lo mismo(pero, obviamente, restando), esta es sbb.
Un ejecmplo de adc :(lo pongo en sintaxis at&t)
;suponemos que ax y cx forman un numero de 32 bits
;y que bx y dx forman otro numero de 32 bits
add %ax, %bx ;(suponiendo que valen 111111111111111 los dos)
; el resultado dado por la operacion será 111111111111110 y el carry flag se
;pondra a 1
;entonces se hace la operacion adc que tiene en cuenta ese bit para acabar
;de hacer la suma(cx y dx tienen la parte mas "grande" de los numeros de 32 bits)
adc %cx, %dx ; y yasta! Aunque... no he tenido en cuenta el signo...