crc校验程序源代码_第1页
crc校验程序源代码_第2页
crc校验程序源代码_第3页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CRC即循环冗余校验码(Cyclic Redundancy Check是信息字段和校验字段的长度可以任意选定。程序源代码disp macro mlea dx,mmov ah,9int 21hODHendm:显示字符的宏定义stack1 segment para stack stackdb 200 dup (0)stack1 endsdata1 segmentstr0 DB OAH,ODH,*Sstr1 DB 0AH,0DH *S页脚内容1CRC即循环冗余校验码(Cyclic Redundancy Check是信息字段和校验字段的长度可以任意选定。str2 DB 0AH,0DH, *NNNNNN

2、NNNDNBNN=-s NNNNNNNNNNNNNNNNNNNN*$str3 DB 0AH,0DH, *zNNN-(NNNNKsNNNNz-*$str4 DB 0AH,0DH, *=NNNBsNNN zNNN= NNNN+*Sstr5 DB 0AH,0DH, *BNNNNND-NBNzNNN +NBN=zNBNz*Sstr6 DB 0AH,0DH, *sNNN hNNN(zNNN- +NNNDBNNN-*Sstr7 DB 0AH,0DH, *NNNDNNNzNNNz*Sstr8 DB 0AH,0DH, *sNNN zNNNhzzDNNNBzNBN zNNNNNNNBBz-*Sstr9 DB 0

3、AH,0DH, *S页脚内容2CRC即循环冗余校验码(Cyclic Redundancy Check是信息字段和校验字段的长度可以任意选定。Str10 DB 0AH,0DH, *sNNN+ zNNNNNNNND=NNNz zNNN=sNNNDNNNB sNBN- =NNNhNNNz(NNNB*SStr11 DB 0AH,0DH, *SStr12 DB 0AH,0DH, *NNNN(*SStr13 DB 0AH,0DH, *BBNNz=NNNNssNNN DNNN+ hNNNDzNNN NNN- NNND-*SStr14 DB 0AH,0DH, *SStr15 DB 0AH,0DH, *NNNN

4、NNNNNNsNNNBNBNKNNNNNNNNNN*SStr16 DB 0AH,0DH *SStr17 DB 0AH,0DH,*S页脚内容3CRC即循环冗余校验码(Cyclic Redundancy Check是信息字段和校验字段的长度可以任意选定。Str18 DB 0AH,0DH, *SStr19 DB 0AH,0DH, * Press s to start the programme*SStr20 DB 0AH,0DH, * Press q to quit the programme*SStr21 DB 0AH,0DH, * Press c to clear the programme*S

5、Str22 DB 0AH,0DH, * Cyclic Redundancy Check Programme BULID BY tl*SStr23 DB 0AH,0DH,*S:LOGO及提示Str_enter db 0ah,0dh,$Crc16 table label word:00hdw 00000h, 0C0C1h, 0C181h, 00140h, 0C301h, 003C0h, 00280h, 0C241hdw 0C601h, 006C0h, 00780h, 0C741h, 00500h, 0C5C1h, 0C481h, 00440h页脚内容4CRC即循环冗余校验码(Cyclic Redu

6、ndancy Check是信息字段和校验字段的长度可以任意选定。dw 0CC01h, 00CC0h, 00D80h, 0CD41h, 00F00h, 0CFC1h, 0CE81h, 00E40hdw 00A00h, 0CAC1h, 0CB81h, 00B40h, 0C901h, 009C0h, 00880h, 0C841h: 20hdw 0D801B, 018C0H, 01980H, 0D941H, 01B00H, 0DBC1H, 0DA81H, 01A40Hdw 01E00H, 0DEC1H, 0DF81H, 01F40H, 0DD01H, 01DC0H, 01C80H, 0DC41Hdw

7、01400H, 0D4C1H, 0D581H, 01540H, 0D701H, 017C0H, 01680H, 0D641Hdw 0D201H, 012C0H, 01380H, 0D341H, 01100H, 0D1C1H, 0D081H, 01040H: 40hdw 0F001H, 030C0H, 03180H, 0F141H, 03300H, 0F3C1H, 0F281H, 03240Hdw 03600H, 0F6C1H, 0F781H, 03740H, 0F501H, 035C0H, 03480H, 0F441Hdw 03C00H, 0FCC1H, 0FD81H, 03D40H, 0FF

8、01H, 03FC0H, 03E80H, 0FE41Hdw 0FA01H, 03AC0H, 03B80H, 0FB41H, 03900H, 0F9C1H, 0F881H, 03840H: 60hdw 02800H, 0E8C1H, 0E981H, 0294OH, 0EB01H, 02BC0H, 02A80H, 0EA41Hdw 0EE01H, 02EC0H, 02F80H, 0EF41H, 02D00H, 0EDC1H, 0EC81H, 02C40Hdw 0E401H, 024C0H, 02580H, 0E541H, 02700H, 0E7C1H, 0E681H, 02640H页脚内容5CRC

9、即循环冗余校验码(Cyclic Redundancy Check是信息字段和校验字段的长度可以任意选定。dw 02200H, 0E2C1H, 0E2C1H, 0E381H, 02340H, 0E101H, 021COH, 02080H, 0E041H: 80hdw 0A001H, 060C0H, 06180H, 0A141H, 06300H, 0A3C1H, 0A281H, 06240Hdw 06600H, 0A6C1H, 0A781H, 06740H, 0A501H, 065C0H, 06480H, 0A441Hdw 06C00H, 0ACC1H, 0AD81H, 06D40H, 0AF01

10、H, 06FC0H, 06E80H, 0AE41Hdw 0AA01H, 06AC0H, 06B80H, 0AB41H, 06900H, 0A9C1H, 0A881H, 06840H:A0hdw 07800H, 0B8C1H, 0B981H, 07940H, 0BB01H, 07BC0H, 07A80H, 0BA41Hdw 0BE01H, 07EC0H, 07F80H, 0BF41H, 07D00H, 0BDC1H, 0BC81H, 07C40Hdw 0B401H, 074C0H, 07580H, 0B541H, 07700H, 0B7C1H, 0B681H, 07640Hdw 07200H,

11、0B2C1H, 0B381H, 07340H, 0B101H, 071C0H, 07080H, 0B041H:C0hdw 05000H,090C1H,09181H,05140H,09301H,053C0H,05280H,09241Hdw 09601H,056C0H,05780H,09741H,05500H,095C1H,09481H,05440Hdw 09C01H,05CC0H,05D80H,09D41H,05F00H,09FC1H,09E81H,05E40Hdw 05A00H,09AC1H,09B81H,05B40H,09901H,059C0H,05880H,09841H页脚内容6CRC即循

12、环冗余校验码(Cyclic Redundancy Check是信息字段和校验字段的长度可以任意选定。:E0hdw 08801H,048C0H,04980H,08941H,04B00H,08BC1H,08A81H,04A40Hdw 04E00H,08EC1H,08F81H,04F30H,08D01H,04DC0H,04C80H,08C41Hdw 04E00H,084C1H,08581H,04540H,08701H,047C0H,04680H,08641Hdw 08201H,042C0H,04380H,08341H,04100H,081C1H,08081H,04040H;CRC16 TABLEda

13、ta_buf DB 200 dup(?),$crc dw ?len dw ?info db 0AH,0DH,TheCRC Code is : $info_input db 0AH,0DH,Pleaseinput the string :$data1 endscode segmentassume cs:code,ds:data1,ss:stack1START页脚内容7CRC即循环冗余校验码(Cyclic Redundancy Check是信息字段和校验字段的长度可以任意选定。Main proc fardisplay_logmov ax,data1mov ds,axdisp str0disp st

14、r1disp str2disp str3disp str4disp str5disp str6disp str7disp str8disp str9disp str10disp str11页脚内容8CRC即循环冗余校验码(Cyclic Redundancy Check是信息字段和校验字段的长度可以任意选定。disp str12disp str13disp str14disp str15disp str16disp str17disp str18disp str19disp str20disp str21disp str22disp str23;显示 LOGO及提示信息choose_functi

15、on:mov ah,8int 21h;cmp 页脚内容9CRC即循环冗余校验码(Cyclic Redundancy Check是信息字段和校验字段的长度可以任意选定。jz startp;为则跳到 startpcmp al,pjz quit;为q则跳到 quitcmp alcjz clear;为c则跳到 cleardisp str_error否则显示错误信息jmp display_logstartp:disp info_input;提示输入call windows_main;调用 windows_main开始计算jmp display_logclear:call clear_screen;调用

16、clear_screen清屏jmp display_logquit:mov ah,4ch页脚内容10CRC即循环冗余校验码(Cyclic Redundancy Check是信息字段和校验字段的长度可以任意选定。int 21h;结束retmain endpclear_screen proc ;清屏push axpush bxpush cxpush dxmov ah,6mov al,0mov ch,0mov cl,0mov dh,24mov dl,79mov bh,7int 10h页脚内容11CRC即循环冗余校验码(Cyclic Redundancy Check是信息字段和校验字段的长度可以任意选

17、定。mov dh,1mov dl,1mov ah,2mov bh,0int 10hpop dxpop cxpop bxpop axretclear_screen endpwindows_main proc nearlea di,data_bufcall get_string 调用 get_string读取输入字符lea si,data_bufcall cal_len ;调用 cal_len计算读取字符长度页脚内容12CRC即循环冗余校验码(Cyclic Redundancy Check是信息字段和校验字段的长度可以任意选定。lea si,data_bufcall cal_crc16 ;调用 c

18、al_crc计算 CRCdisp infomov bx,crccall Hex_Ascii ;调用 Hex_Ascii转化成 16进制cal:mov ah,6hmov dl,0ffhint 21hcmp al,0dh;如果检测到回车则跳出jz exit2jmp calexit2:retwindows_main endp;查表法计算 CRC页脚内容13CRC即循环冗余校验码(Cyclic Redundancy Check是信息字段和校验字段的长度可以任意选定。;入口:DS:SI=buffer地址;CX buffer=长度DX= CRC的初始值;出口:DX=CRCcal_crc16 proc ne

19、arpush cxpush dxmov cx,lenmov dx,0call crc16mov 初始化入口出口pop dxpop cxretcal_crc16 endpcrc16 proc near页脚内容14CRC即循环冗余校验码(Cyclic Redundancy Check是信息字段和校验字段的长度可以任意选定。push cxpush bxpush sicrc16_loop:xor ax,axmov al,siinc sixor al,dlshl ax,1mov bx,axmov ax,bx+crc16_tablexor al dhmov dx,axdec cxjnz crc16_loop;查表pop si页脚内容15CRC即循环冗余校验码(Cyclic Redundancy Check是信息字段和校验字段的长度可以任意选定。pop bxpop cxretcrc16 endpget_string proc 读取字符串input:mov ah,1int 21hcmp al,0dhjz exit3mov di,alinc dijmp inputexit3:inc dimov DS:di,$页脚内容16CRC即循环冗余校验码(Cyclic R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论