; Calcule la somme "checksum" TCP/IP (16-bit carry-wrapping) du tampon ; commençant à ESI, de longueur ECX words. ; Retourne checksum dans AX. ; les mots de poids forts de EAX, DX, ECX et ESI sont détruits. ; Tous les comptages de cycles correspondent au mode protégé 32 bits. ; et supposent que la longueur du tampon > 0. sub eax,eax ;initialise la checksum mov dx,[esi] ;premier mots dans checksum dec ecx ;nous ferons 1 checksum en dehors de ; la boucle jz short ckloopend ;une seule checksum à faire add esi,2 ;pointe sur le prochain mot dans ;checksum ckloop: add al,dl ;pipeline U 1er cycle mov dl,[esi] ;pipeline V 1er cycle adc ah,dh ;pipeline U 2ème cycle mov dh,[esi+1];pipeline V 2ème cycle adc eax,0 ;pipeline U 3ème cycle add esi,2 ;pipeline V 3ème cycle dec ecx ;pipeline U 4ème cycle jnz ckloop ;pipeline V 4ème cycle ckloopend: add ax,dx ;checksum du dernier mot adc eax,0