Comparing files FCRCT.ASM and CRC.ASM
***** FCRCT.ASM
        .ilist
; CRC-32 Calculation Test
***** CRC.ASM
        .ilist
;        .8086
; CRC-32 Calculation Test
*****

***** FCRCT.ASM

@@:     movzx   bx,al
        lea     di,[bx+si]              ;address terminator
***** CRC.ASM

@@:     xor     bh,bh                   ;$$ was:  movzx   bx,al
        mov     bl,al                   ;$$ added
        lea     di,[bx+si]              ;address terminator
*****

***** FCRCT.ASM

        xor     eax,eax
        mov     ml mv2,eax              ;byte count
        dec     eax
        mov     ml crcv,eax             ;init crc-32

***** CRC.ASM

        xor     ax,ax                   ;$$ was xor eax,eax
        mov     word ptr mv2,ax       ;$$ was ml mv2,eax byte count
        dec     ax                      ;$$ was dec eax
        mov     word ptr crcvl,ax     ;$$ was ml crcv,eax ;init crc-32
        mov     word ptr crcvh,ax     ;$$ added

*****

***** FCRCT.ASM
chkd:   mov     si,dx                   ;address xiobuf for ucrc
        mov     edx,ml crcv             ;running crc value
        or      ax,ax
***** CRC.ASM
chkd:   mov     si,dx                   ;address xiobuf for ucrc
        mov     dx,word ptr crcvl       ;$$ was dx, ml crcv ;running crc value
        mov     bx,word ptr crcvh       ;$$ added
        or      ax,ax
*****

***** FCRCT.ASM

        movzx   eax,ax
        add     ml mv2,eax              ;count of bytes read

***** CRC.ASM

        mov     ax,ax                   ;$$
        add     word ptr mv2,ax         ;$$ count of bytes read

*****

***** FCRCT.ASM
        call    ucrc
        mov     ml crcv,edx             ;save crc
        jmp     s nxrd                  ;next block
***** CRC.ASM
        call    ucrc
        mov     word ptr crcvl,dx       ;$$ save crc
        mov     word ptr crcvh,bx       ;$$
        jmp     s nxrd                  ;next block
*****

***** FCRCT.ASM

eof:    not     edx                     ;final crc value
        mov     ml mv1,edx

***** CRC.ASM

eof:    not     dx                      ;$$ final crc value
        not     bx                      ;$$ added
        mov     word ptr mv1l,dx        ;$$
        mov     word ptr mv1h,bx        ;$$

*****

***** FCRCT.ASM

crcv:   dd      0
blksz:  dw      0
***** CRC.ASM

crcvl:  dw      0
crcvh:  dw      0
mv1l:   dw      0
mv1h:   dw      0
mv2l:   dw      0
mv2h:   dw      0
blksz:  dw      0
*****

***** FCRCT.ASM

ucrc:   mov     edi,os crcpyt           ;crc polynomial table
        xor     eax,eax

***** CRC.ASM

ucrc:   mov     di,os crcpyt            ;crc polynomial table
        xor     ax,ax

*****

***** FCRCT.ASM
        xor     al,dl                   ;index by crc bits 24-31
        shr     edx,8                   ;eliminate bits added to original byte
        xor     edx,ml [edi+(eax*4)]    ;add 32 generated from original byte
        loop    lcrc                    ;next byte
***** CRC.ASM
        xor     al,dl                   ;index by crc bits 24-31
        shr     dx,8                    ;eliminate bits added to original byte
        xor     dx,ml [di+(ax*4)] ;add 32 generated from original byte
        loop    lcrc                    ;next byte
*****

***** FCRCT.ASM

genpyt: mov     ebp,0edb88320h          ;reverse polynomial
        mov     di,os crcpyt
***** CRC.ASM

genpyt: mov     bp,0edb8h               ;$$ was 0edb88320h reverse polynomial
        mov     di,os crcpyt
*****

***** FCRCT.ASM

gcl:    mov     edx,ebp                 ;load polynomial
        xor     eax,eax                 ;clear result
        mov     cx,8                    ;bit count
***** CRC.ASM

gcl:    mov     dx,bp                   ;$$ load polynomial
        xor     ax,ax                   ;$$ clear result
        mov     cx,8                    ;bit count
*****

***** FCRCT.ASM
        jnc     @f
        xor     eax,edx                 ;add polynomial for each set bit
@@:     shr     edx,1                   ;multiply by 2 for next exponent
        jnc     @f
        xor     edx,ebp                 ;overflow generates feedback
@@:     loop    apl                     ;next bit
        stosd                           ;save result in table
        inc     bh                      ;next byte
***** CRC.ASM
        jnc     @f
        xor     ax,dx                   ;$$ add polynomial for each set bit
@@:     shr     dx,1                    ;$$ multiply by 2 for next exponent
        jnc     @f
        xor     dx,bp                   ;$$ overflow generates feedback
@@:     loop    apl                     ;next bit
        stosw                           ;$$ was stosd ;save result in table
        inc     bh                      ;next byte
*****


