Old crc16 is now a .asm
This commit is contained in:
45
src/crc16.asm
Normal file
45
src/crc16.asm
Normal file
@@ -0,0 +1,45 @@
|
||||
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
|
Reference in New Issue
Block a user