亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gvmat32.asm

?? emacs的一個非常有用的插件,叫xrefactory,可以實現source insight里的那種函數跳轉.和cscope(跳回來不方便)配合使用,非常的不錯.
?? ASM
字號:
;; gvmat32.asm -- Asm portion of the optimized longest_match for 32 bits x86; Copyright (C) 1995-1996 Jean-loup Gailly and Gilles Vollant.; File written by Gilles Vollant, by modifiying the longest_match;  from Jean-loup Gailly in deflate.c; It need wmask == 0x7fff;     (assembly code is faster with a fixed wmask);; For Visual C++ 4.2 and ML 6.11c (version in directory \MASM611C of Win95 DDK);   I compile with : "ml /coff /Zi /c gvmat32.asm";;uInt longest_match_7fff(s, cur_match);    deflate_state *s;;    IPos cur_match;                             /* current match */        NbStack         equ     76        cur_match       equ     dword ptr[esp+NbStack-0]        str_s           equ     dword ptr[esp+NbStack-4]; 5 dword on top (ret,ebp,esi,edi,ebx)        adrret          equ     dword ptr[esp+NbStack-8]        pushebp         equ     dword ptr[esp+NbStack-12]        pushedi         equ     dword ptr[esp+NbStack-16]        pushesi         equ     dword ptr[esp+NbStack-20]        pushebx         equ     dword ptr[esp+NbStack-24]        chain_length    equ     dword ptr [esp+NbStack-28]        limit           equ     dword ptr [esp+NbStack-32]        best_len        equ     dword ptr [esp+NbStack-36]        window          equ     dword ptr [esp+NbStack-40]        prev            equ     dword ptr [esp+NbStack-44]        scan_start      equ      word ptr [esp+NbStack-48]        wmask           equ     dword ptr [esp+NbStack-52]        match_start_ptr equ     dword ptr [esp+NbStack-56]        nice_match      equ     dword ptr [esp+NbStack-60]        scan            equ     dword ptr [esp+NbStack-64]        windowlen       equ     dword ptr [esp+NbStack-68]        match_start     equ     dword ptr [esp+NbStack-72]        strend          equ     dword ptr [esp+NbStack-76]        NbStackAdd      equ     (NbStack-24)    .386p    name    gvmatch    .MODEL  FLAT;  all the +4 offsets are due to the addition of pending_buf_size (in zlib;  in the deflate_state structure since the asm code was first written;  (if you compile with zlib 1.0.4 or older, remove the +4).;  Note : these value are good with a 8 bytes boundary pack structure    dep_chain_length    equ     70h+4    dep_window          equ     2ch+4    dep_strstart        equ     60h+4    dep_prev_length     equ     6ch+4    dep_nice_match      equ     84h+4    dep_w_size          equ     20h+4    dep_prev            equ     34h+4    dep_w_mask          equ     28h+4    dep_good_match      equ     80h+4    dep_match_start     equ     64h+4    dep_lookahead       equ     68h+4_TEXT                   segmentIFDEF NOUNDERLINE                        public  longest_match_7fff;                        public  match_initELSE                        public  _longest_match_7fff;                        public  _match_initENDIF    MAX_MATCH           equ     258    MIN_MATCH           equ     3    MIN_LOOKAHEAD       equ     (MAX_MATCH+MIN_MATCH+1)IFDEF NOUNDERLINE;match_init      proc near;                ret;match_init      endpELSE;_match_init     proc near;                ret;_match_init     endpENDIFIFDEF NOUNDERLINElongest_match_7fff   proc nearELSE_longest_match_7fff  proc nearENDIF        mov     edx,[esp+4]        push    ebp        push    edi        push    esi        push    ebx        sub     esp,NbStackAdd; initialize or check the variables used in match.asm.        mov     ebp,edx; chain_length = s->max_chain_length; if (prev_length>=good_match) chain_length >>= 2        mov     edx,[ebp+dep_chain_length]        mov     ebx,[ebp+dep_prev_length]        cmp     [ebp+dep_good_match],ebx        ja      noshr        shr     edx,2noshr:; we increment chain_length because in the asm, the --chain_lenght is in the beginning of the loop        inc     edx        mov     edi,[ebp+dep_nice_match]        mov     chain_length,edx        mov     eax,[ebp+dep_lookahead]        cmp     eax,edi; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;        jae     nolookaheadnicematch        mov     edi,eaxnolookaheadnicematch:; best_len = s->prev_length        mov     best_len,ebx; window = s->window        mov     esi,[ebp+dep_window]        mov     ecx,[ebp+dep_strstart]        mov     window,esi        mov     nice_match,edi; scan = window + strstart        add     esi,ecx        mov     scan,esi; dx = *window        mov     dx,word ptr [esi]; bx = *(window+best_len-1)        mov     bx,word ptr [esi+ebx-1]        add     esi,MAX_MATCH-1; scan_start = *scan        mov     scan_start,dx; strend = scan + MAX_MATCH-1        mov     strend,esi; bx = scan_end = *(window+best_len-1);    IPos limit = s->strstart > (IPos)MAX_DIST(s) ?;        s->strstart - (IPos)MAX_DIST(s) : NIL;        mov     esi,[ebp+dep_w_size]        sub     esi,MIN_LOOKAHEAD; here esi = MAX_DIST(s)        sub     ecx,esi        ja      nodist        xor     ecx,ecxnodist:        mov     limit,ecx; prev = s->prev        mov     edx,[ebp+dep_prev]        mov     prev,edx;        mov     edx,dword ptr [ebp+dep_match_start]        mov     bp,scan_start        mov     eax,cur_match        mov     match_start,edx        mov     edx,window        mov     edi,edx        add     edi,best_len        mov     esi,prev        dec     edi; windowlen = window + best_len -1        mov     windowlen,edi        jmp     beginloop2        align   4; here, in the loop;       eax = ax = cur_match;       ecx = limit;        bx = scan_end;        bp = scan_start;       edi = windowlen (window + best_len -1);       esi = prev;// here; chain_length <=16normalbeg0add16:        add     chain_length,16        jz      exitloopnormalbeg0:        cmp     word ptr[edi+eax],bx        je      normalbeg2norollrcontlabnoroll:; cur_match = prev[cur_match & wmask]        and     eax,7fffh        mov     ax,word ptr[esi+eax*2]; if cur_match > limit, go to exitloop        cmp     ecx,eax        jnb     exitloop; if --chain_length != 0, go to exitloop        dec     chain_length        jnz     normalbeg0        jmp     exitloopnormalbeg2noroll:; if (scan_start==*(cur_match+window)) goto normalbeg2        cmp     bp,word ptr[edx+eax]        jne     rcontlabnoroll        jmp     normalbeg2contloop3:        mov     edi,windowlen; cur_match = prev[cur_match & wmask]        and     eax,7fffh        mov     ax,word ptr[esi+eax*2]; if cur_match > limit, go to exitloop        cmp     ecx,eaxjnbexitloopshort1:        jnb     exitloop; if --chain_length != 0, go to exitloop; begin the main loopbeginloop2:        sub     chain_length,16+1; if chain_length <=16, don't use the unrolled loop        jna     normalbeg0add16do16:        cmp     word ptr[edi+eax],bx        je      normalbeg2dc0maccn   MACRO   lab        and     eax,7fffh        mov     ax,word ptr[esi+eax*2]        cmp     ecx,eax        jnb     exitloop        cmp     word ptr[edi+eax],bx        je      lab        ENDMrcontloop0:        maccn   normalbeg2dc1rcontloop1:        maccn   normalbeg2dc2rcontloop2:        maccn   normalbeg2dc3rcontloop3:        maccn   normalbeg2dc4rcontloop4:        maccn   normalbeg2dc5rcontloop5:        maccn   normalbeg2dc6rcontloop6:        maccn   normalbeg2dc7rcontloop7:        maccn   normalbeg2dc8rcontloop8:        maccn   normalbeg2dc9rcontloop9:        maccn   normalbeg2dc10rcontloop10:        maccn   short normalbeg2dc11rcontloop11:        maccn   short normalbeg2dc12rcontloop12:        maccn   short normalbeg2dc13rcontloop13:        maccn   short normalbeg2dc14rcontloop14:        maccn   short normalbeg2dc15rcontloop15:        and     eax,7fffh        mov     ax,word ptr[esi+eax*2]        cmp     ecx,eax        jnb     exitloop        sub     chain_length,16        ja      do16        jmp     normalbeg0add16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;normbeg MACRO   rcontlab,valsub; if we are here, we know that *(match+best_len-1) == scan_end        cmp     bp,word ptr[edx+eax]; if (match != scan_start) goto rcontlab        jne     rcontlab; calculate the good chain_length, and we'll compare scan and match string        add     chain_length,16-valsub        jmp     iseq        ENDMnormalbeg2dc11:        normbeg rcontloop11,11normalbeg2dc12:        normbeg short rcontloop12,12normalbeg2dc13:        normbeg short rcontloop13,13normalbeg2dc14:        normbeg short rcontloop14,14normalbeg2dc15:        normbeg short rcontloop15,15normalbeg2dc10:        normbeg rcontloop10,10normalbeg2dc9:        normbeg rcontloop9,9normalbeg2dc8:        normbeg rcontloop8,8normalbeg2dc7:        normbeg rcontloop7,7normalbeg2dc6:        normbeg rcontloop6,6normalbeg2dc5:        normbeg rcontloop5,5normalbeg2dc4:        normbeg rcontloop4,4normalbeg2dc3:        normbeg rcontloop3,3normalbeg2dc2:        normbeg rcontloop2,2normalbeg2dc1:        normbeg rcontloop1,1normalbeg2dc0:        normbeg rcontloop0,0; we go in normalbeg2 because *(ushf*)(match+best_len-1) == scan_endnormalbeg2:        mov     edi,window        cmp     bp,word ptr[edi+eax]        jne     contloop3                   ; if *(ushf*)match != scan_start, continueiseq:; if we are here, we know that *(match+best_len-1) == scan_end; and (match == scan_start)        mov     edi,edx        mov     esi,scan                    ; esi = scan        add     edi,eax                     ; edi = window + cur_match = match        mov     edx,[esi+3]                 ; compare manually dword at match+3        xor     edx,[edi+3]                 ; and scan +3        jz      begincompare                ; if equal, go to long compare; we will determine the unmatch byte and calculate len (in esi)        or      dl,dl        je      eq1rr        mov     esi,3        jmp     trfinvaleq1rr:        or      dx,dx        je      eq1        mov     esi,4        jmp     trfinvaleq1:        and     edx,0ffffffh        jz      eq11        mov     esi,5        jmp     trfinvaleq11:        mov     esi,6        jmp     trfinvalbegincompare:        ; here we now scan and match begin same        add     edi,6        add     esi,6        mov     ecx,(MAX_MATCH-(2+4))/4     ; scan for at most MAX_MATCH bytes        repe    cmpsd                       ; loop until mismatch        je      trfin                       ; go to trfin if not unmatch; we determine the unmatch byte        sub     esi,4        mov     edx,[edi-4]        xor     edx,[esi]        or      dl,dl        jnz     trfin        inc     esi        or      dx,dx        jnz     trfin        inc     esi        and     edx,0ffffffh        jnz     trfin        inc     esitrfin:        sub     esi,scan          ; esi = lentrfinval:; here we have finised compare, and esi contain len of equal string        cmp     esi,best_len        ; if len > best_len, go newbestlen        ja      short newbestlen; now we restore edx, ecx and esi, for the big loop        mov     esi,prev        mov     ecx,limit        mov     edx,window        jmp     contloop3newbestlen:        mov     best_len,esi        ; len become best_len        mov     match_start,eax     ; save new position as match_start        cmp     esi,nice_match      ; if best_len >= nice_match, exit        jae     exitloop        mov     ecx,scan        mov     edx,window          ; restore edx=window        add     ecx,esi        add     esi,edx        dec     esi        mov     windowlen,esi       ; windowlen = window + best_len-1        mov     bx,[ecx-1]          ; bx = *(scan+best_len-1) = scan_end; now we restore ecx and esi, for the big loop :        mov     esi,prev        mov     ecx,limit        jmp     contloop3exitloop:; exit : s->match_start=match_start        mov     ebx,match_start        mov     ebp,str_s        mov     ecx,best_len        mov     dword ptr [ebp+dep_match_start],ebx                mov     eax,dword ptr [ebp+dep_lookahead]        cmp     ecx,eax        ja      minexlo        mov     eax,ecxminexlo:; return min(best_len,s->lookahead)        ; restore stack and register ebx,esi,edi,ebp        add     esp,NbStackAdd        pop     ebx        pop     esi        pop     edi        pop     ebp        retInfoAuthor:; please don't remove this string !; Your are free use gvmat32 in any fre or commercial apps if you don't remove the string in the binary!        db     0dh,0ah,"GVMat32 optimised assembly code written 1996-98 by Gilles Vollant",0dh,0ahIFDEF NOUNDERLINElongest_match_7fff   endpELSE_longest_match_7fff  endpENDIFIFDEF NOUNDERLINEcpudetect32     proc nearELSE_cpudetect32    proc nearENDIF	pushfd                  ; push original EFLAGS	pop     eax             ; get original EFLAGS	mov     ecx, eax        ; save original EFLAGS	xor     eax, 40000h     ; flip AC bit in EFLAGS	push    eax             ; save new EFLAGS value on stack	popfd                   ; replace current EFLAGS value	pushfd                  ; get new EFLAGS	pop     eax             ; store new EFLAGS in EAX	xor     eax, ecx        ; can抰 toggle AC bit, processor=80386	jz      end_cpu_is_386  ; jump if 80386 processor	push    ecx	popfd                   ; restore AC bit in EFLAGS first	pushfd	pushfd	pop     ecx				mov     eax, ecx        ; get original EFLAGS	xor     eax, 200000h    ; flip ID bit in EFLAGS	push    eax             ; save new EFLAGS value on stack	popfd                   ; replace current EFLAGS value	pushfd                  ; get new EFLAGS	pop		eax	            ; store new EFLAGS in EAX	popfd                   ; restore original EFLAGS	xor		eax, ecx        ; can抰 toggle ID bit,	je		is_old_486		; processor=old	mov     eax,1	db      0fh,0a2h        ;CPUID   exitcpudetect:	retend_cpu_is_386:	mov     eax,0300h	jmp     exitcpudetectis_old_486:	mov     eax,0400h	jmp     exitcpudetectIFDEF NOUNDERLINEcpudetect32     endpELSE_cpudetect32    endpENDIF_TEXT   endsend

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成a人在线观看| 中文字幕一区二区视频| 欧美日韩精品三区| 日韩欧美黄色影院| 夜夜嗨av一区二区三区网页| 国产永久精品大片wwwapp| 中文字幕一区免费在线观看| 国产精品影视网| 日韩欧美在线影院| 国产精品影视网| 中文字幕国产精品一区二区| www.激情成人| 日韩毛片在线免费观看| 国产精品乡下勾搭老头1| 久久精品一区二区三区四区| 日本成人在线一区| 男人的j进女人的j一区| 久久一留热品黄| 成人18精品视频| 中文字幕一区二区三区四区不卡 | 日韩国产欧美在线播放| 91精品国产综合久久精品| 国产成人精品免费在线| 99久久婷婷国产综合精品电影| 中文字幕乱码久久午夜不卡 | 国产日韩欧美亚洲| 91浏览器入口在线观看| 欧美一级艳片视频免费观看| 极品美女销魂一区二区三区| 亚洲视频你懂的| 久久人人爽爽爽人久久久| 久久国内精品视频| 亚洲成人午夜电影| 欧美精品一区二区三区蜜桃| 日本精品裸体写真集在线观看| 日本三级韩国三级欧美三级| 亚洲欧美另类久久久精品 | 天天综合网天天综合色| 国产嫩草影院久久久久| 2023国产精品自拍| 欧美日韩一区二区三区免费看 | 丝袜美腿成人在线| 一区二区三区四区精品在线视频| 视频精品一区二区| 国产日韩av一区| 国产亚洲制服色| 久久精品一区四区| 久久久精品tv| 国产精品久久久久影院亚瑟| 欧美一区二区视频在线观看2020| 欧美日韩一级二级三级| 在线播放91灌醉迷j高跟美女| 91年精品国产| 欧美巨大另类极品videosbest| 国产成人综合在线播放| 丰满少妇久久久久久久| 96av麻豆蜜桃一区二区| 91在线你懂得| 欧美日韩一区中文字幕| 555www色欧美视频| 春色校园综合激情亚洲| 精品视频免费看| 暴力调教一区二区三区| 欧美日韩精品免费观看视频| 99re在线视频这里只有精品| 69p69国产精品| 国产精品免费久久久久| 午夜久久久久久| 精品一区二区三区香蕉蜜桃 | 91精品欧美久久久久久动漫| 欧美mv日韩mv| 午夜视频一区二区三区| 不卡大黄网站免费看| 欧美一级高清片在线观看| 国产精品超碰97尤物18| 国产激情一区二区三区四区| 国产盗摄一区二区| 欧美大片一区二区| 亚洲成人免费影院| 国产高清成人在线| www国产亚洲精品久久麻豆| 日本一区二区三级电影在线观看 | 男人操女人的视频在线观看欧美| 99精品偷自拍| 精品卡一卡二卡三卡四在线| 视频一区国产视频| 色综合天天综合网国产成人综合天 | 亚洲一线二线三线久久久| 蜜桃久久久久久久| 欧美精品日韩一本| 午夜精品一区在线观看| 91精品国产一区二区| 蜜桃一区二区三区在线观看| 欧美色图免费看| 美女视频黄久久| 国产婷婷色一区二区三区在线| 久久99国产精品尤物| 精品福利一区二区三区| 国产一区二区不卡老阿姨| 中文欧美字幕免费| 91黄视频在线| 九色|91porny| 国产精品国产成人国产三级| 色久综合一二码| 国产在线乱码一区二区三区| 91热门视频在线观看| 亚洲精品国产精品乱码不99| 6080yy午夜一二三区久久| 韩国成人在线视频| 国产欧美日韩三级| 欧美日本不卡视频| 成人国产免费视频| 水野朝阳av一区二区三区| 国产精品视频九色porn| 欧美一区二区三区播放老司机| 成人免费高清视频在线观看| 日本亚洲欧美天堂免费| 国产精品久久久久久久久图文区| 一本色道a无线码一区v| 夫妻av一区二区| 顶级嫩模精品视频在线看| 蜜臀av性久久久久蜜臀aⅴ流畅 | 热久久免费视频| 一区二区三区在线视频观看| 国产女主播视频一区二区| 日韩精品一区二区三区视频| 91色综合久久久久婷婷| jlzzjlzz亚洲日本少妇| 不卡免费追剧大全电视剧网站| 丁香亚洲综合激情啪啪综合| 国产自产2019最新不卡| 国产乱子伦视频一区二区三区| 久久97超碰国产精品超碰| 亚洲二区在线视频| 午夜免费欧美电影| 狠狠色狠狠色合久久伊人| 韩国午夜理伦三级不卡影院| 国产专区综合网| 91丨九色丨黑人外教| 欧美优质美女网站| 99久久亚洲一区二区三区青草 | 国产欧美日韩精品一区| 国产欧美一区二区精品秋霞影院| 久久久夜色精品亚洲| 亚洲摸摸操操av| 亚洲另类春色国产| 蜜芽一区二区三区| 国产精品一二三四| 欧美久久久一区| 欧美激情一区二区三区全黄| 亚洲国产日日夜夜| 日本免费在线视频不卡一不卡二| 国产综合久久久久影院| 在线欧美日韩精品| 91麻豆成人久久精品二区三区| 亚洲午夜电影网| 看电影不卡的网站| 成人app下载| 欧美日韩精品欧美日韩精品一| 91精品在线观看入口| 国产午夜久久久久| 亚洲成人777| 国产成人在线色| 欧美一卡二卡三卡| 日韩一区在线看| 韩国成人在线视频| 这里只有精品99re| 亚洲色图视频免费播放| 蜜桃一区二区三区在线| 久久综合色一综合色88| 亚洲一区二区三区四区在线观看 | 欧美日韩精品二区第二页| 精品福利av导航| 午夜精彩视频在线观看不卡| 成人福利视频在线| 91精品婷婷国产综合久久性色| 亚洲欧美在线高清| 国产91精品入口| 久久婷婷色综合| 久久成人免费电影| 51午夜精品国产| 日韩精品电影在线| av电影在线观看不卡| 欧美日韩一区二区三区视频| 国产精品第四页| 国产另类ts人妖一区二区| 91精品麻豆日日躁夜夜躁| 一区二区三区中文字幕| 国产91丝袜在线观看| 欧美mv日韩mv国产网站| 日韩av不卡一区二区| 欧美视频日韩视频| 亚洲国产日韩a在线播放| 99re在线视频这里只有精品| 国产精品久久久久久久久动漫 | 国产日韩三级在线| 国产原创一区二区| 久久久五月婷婷| 国产又黄又大久久| 国产亚洲一二三区|