; Calcule la somme checksum TCP/IP (16-bit carry-wrapping) du tampon ; commençant à ESI, de longueur ECX mots. ; Retourne checksum dans AX. ; ECX et ESI sont détruits. ; Les comptages de cycle utilisent le mode protégé 32 bits. ; Nécessite une longueur du tampon > 0. ; Notez que les temps indiquent que la séquence du pipeline et le nombre ; de cycles (basés sur les règles d'exécution documentées) ; diffèrent de la séquence d'exécution réelle et des comptages de cycle ; rencontrés ici ; Cette boucle a été mesurée pour s'exécuter en 5 cycles; ; la première moitié de ADD peut être parallélisée avec l'octet de préfixe, ou ; bien l'octet de préfixe est exécuté à l'avance. sub ax,ax ;initialise la checksum ckloop: add ax,[esi] ;pipeline U, 1er cycle octet de ;préfixe ;pipeline V, en attente (non parallélisable w/Préfixe) ;pipeline U, 2ème cycle première moitié de ADD ;pipeline V, 2ème cycle en attente (conflit de registre) ;pipeline U, 3ème cycle seconde moitié de ADD ;pipeline V, 3ème cycle en attente (conflit de registre) adc ax,0 ;pipeline U, 4ème cycle octet de ;préfixe ;pipeline V, 4ème cycle en attente (non parallélisable w/ ;préfixe) ;pipeline U, 5ème cycle ADC AX,0 add esi,2 ;pipeline V, 5ème cycle dec ecx ;pipeline U, 6ème cycle jnz ckloop ;pipeline V, 6ème cycle