CPU 8086 _start: push bp mov bp, sp mov si, [bp+8] push word [si] mov si, [bp+10] push word [si] call crc16 mov di, [bp+6] mov [di], ax mov sp, bp pop bp retf 6 crc16: push bp mov bp, sp mov bx, [bp+4] add [bp+6], bx mov ax, -1 .L2: cmp bx, [bp+6] jne .L5 pop bp ret .L5: mov dl, [bx] mov cl, 0x8 shl dx, cl xor ax, dx mov dl, cl .L4: mov cx, ax shl cx, 1 test ax, ax xchg cx, ax jge .L3 xor ax, 4129 .L3: dec dl jne .L4 inc bx jmp .L2