求救!关于CRC的。见者有份,UP给分。。。
我手头有个紧要的任务就是,能够对0C数据产生14 3A的CRC码,对5D D8 00 0F E2 10 00 06 7F 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00产生F2 6B的CRC码。导师给了我一个delphi7生成的exe文件,能够生成对应数据的相应CRC码,现在要我用C语言编程实现这个功能。 我目前知道的是他好像用的是CCITT_CRC16的反转多项式。
另外:还给了段汇编代码, 但没怎么看懂。。。
procedure CCITT_CRC16(var Source; ALength: Longint; var ACRC16: Word); pascal;
var
CRC : Array[0..255] of Word;
asm
PUSH ESI
PUSH EDI
PUSH EBX
LEA edi,CRC
xor bx,bx
@@1:
mov ecx,8
mov ax,bx
@@2:
shr ax,1
jnc @@3
xor ax,08408h
@@3:
loop @@2
stosw
inc bx
cmp bx,0100h
jnz @@1
MOV ESI,Source
MOV ECX,ALength
MOV EDX,ACRC16
JCXZ @@5
MOV DX,[EDX]
NOT DX
XOR EBX,EBX
LEA EDI,CRC
@@4:
LODSB
MOV BL,DL
XOR BL,AL
SHR DX,8
XOR DX,[EBX*2+EDI]
LOOP @@4
NOT DX
MOV EBX,ACRC16
MOV [EBX],DX
@@5:
POP EBX
POP EDI
POP ESI
end;
希望给予我帮助。谢谢!! 493288977@163.com
在线等。。。。
[解决办法]
友情声援。
不过,即使是“紧急任务”,也不要轻易结贴,遇到重要问题一定要搞清楚。
[解决办法]
up
[解决办法]
帮顶下
[解决办法]
支持一下
[解决办法]
不懂,穷人来up捡分。。。
[解决办法]
需要汇编的代码干什么呢???