Dec 082017
These ASM functions calculate a 32 bit CRC, and are callable from Turbo C or Microsoft C.
File MSC_CRC.ZIP from The Programmer’s Corner in
Category C Source Code
These ASM functions calculate a 32 bit CRC, and are callable from Turbo C or Microsoft C.
File Name File Size Zip Size Zip Type
32CRC.ASM 7892 2794 deflated
32CRCF.ASM 4469 1494 deflated
32CRCF_C.OBJ 261 231 deflated
32CRCF_L.OBJ 268 238 deflated
32CRCF_M.OBJ 262 234 deflated
32CRCF_S.OBJ 255 227 deflated
32CRC_C.OBJ 1372 1298 deflated
32CRC_L.OBJ 1378 1304 deflated
32CRC_M.OBJ 1374 1302 deflated
32CRC_S.OBJ 1368 1296 deflated
CASM.INC 3491 960 deflated
CRCTEST.C 6149 2336 deflated
CTIMER.ASM 8412 2730 deflated
CTIMER_C.OBJ 688 561 deflated
CTIMER_L.OBJ 698 570 deflated
CTIMER_M.OBJ 698 570 deflated
CTIMER_S.OBJ 688 561 deflated
READ.ME 1034 567 deflated

Download File MSC_CRC.ZIP Here

Contents of the READ.ME file

Documentation for these functions is in the headers of the ASM source
code. One thing not mentioned there is that in order to get the final
CRC, you need to take the one's complement of the last CRC value.
The functions don't do that for you since you may be calculating on
ongoing CRC. If the CRC you calculate isn't what you expected, check
if the one's complement is it.

If you re-assemble 32CRC.ASM, ignore the warning message, you get from
MASM about operand types must match. It is caused by MASM not
accepting casts on variables declared in the function parameter list.
It assembles OK but you get the warning.

CTIMER.ASM has nothing to do with CRCs but is a nice function for
timing execution speed of functions. If you run CRCTEST several times,
you will notice the elapsed time results are not always consistent.
This is due to timer tick interrupts, etc. occurring varying amounts
of times during the execution of the function being timed.

Mike Dumdei, Split Up the Middle BBS, 214 838-6713

 December 8, 2017  Add comments

Leave a Reply