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

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

?? gvmat32.asm

?? ocx 代碼
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
newbestlen:
        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     contloop3

exitloop:
; 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,ecx
minexlo:
; 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
        ret



; now : the generic version
; (mask is not fixed)

longest_match_generic:
        push    ebp
        push    edi
        push    esi
        push    ebx

        sub     esp,NbStackAdd

; initialize or check the variables used in match.asm.

        and     eax,0ffffh 
        mov     ebp,edx

        mov     wmask,eax

; 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      gnoshr
        shr     edx,2
gnoshr:
; 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     gnolookaheadnicematch
        mov     edi,eax
gnolookaheadnicematch:
; 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      gnodist
        xor     ecx,ecx
gnodist:
        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     gbeginloop2
        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 <=16
gnormalbeg0add16:
        add     chain_length,16
        jz      gexitloop
gnormalbeg0:
        cmp     word ptr[edi+eax],bx
        je      gnormalbeg2noroll
grcontlabnoroll:
; cur_match = prev[cur_match & wmask]
        and     eax,wmask
        mov     ax,word ptr[esi+eax*2]
; if cur_match > limit, go to exitloop
        cmp     ecx,eax
        jnb     gexitloop
; if --chain_length != 0, go to exitloop
        dec     chain_length
        jnz     gnormalbeg0
        jmp     gexitloop

gnormalbeg2noroll:
; if (scan_start==*(cur_match+window)) goto normalbeg2
        cmp     bp,word ptr[edx+eax]
        jne     grcontlabnoroll
        jmp     gnormalbeg2

gcontloop3:
        mov     edi,windowlen

; cur_match = prev[cur_match & wmask]
        and     eax,wmask
        mov     ax,word ptr[esi+eax*2]
; if cur_match > limit, go to exitloop
        cmp     ecx,eax
gjnbexitloopshort1:
        jnb     gexitloop
; if --chain_length != 0, go to exitloop


; begin the main loop
gbeginloop2:
        sub     chain_length,16+1
; if chain_length <=16, don't use the unrolled loop
        jna     gnormalbeg0add16

gdo16:
        cmp     word ptr[edi+eax],bx
        je      gnormalbeg2dc0

gmaccn  MACRO   glab
        and     eax,wmask
        mov     ax,word ptr[esi+eax*2]
        cmp     ecx,eax
        jnb     gexitloop
        cmp     word ptr[edi+eax],bx
        je      glab
        ENDM

grcontloop0:
        gmaccn  gnormalbeg2dc1

grcontloop1:
        gmaccn  gnormalbeg2dc2

grcontloop2:
        gmaccn  gnormalbeg2dc3

grcontloop3:
        gmaccn  gnormalbeg2dc4

grcontloop4:
        gmaccn  gnormalbeg2dc5

grcontloop5:
        gmaccn  gnormalbeg2dc6

grcontloop6:
        gmaccn  gnormalbeg2dc7

grcontloop7:
        gmaccn  gnormalbeg2dc8

grcontloop8:
        gmaccn  gnormalbeg2dc9

grcontloop9:
        gmaccn  gnormalbeg2dc10

grcontloop10:
        gmaccn  short gnormalbeg2dc11

grcontloop11:
        gmaccn  short gnormalbeg2dc12

grcontloop12:
        gmaccn  short gnormalbeg2dc13

grcontloop13:
        gmaccn  short gnormalbeg2dc14

grcontloop14:
        gmaccn  short gnormalbeg2dc15

grcontloop15:
        and     eax,wmask
        mov     ax,word ptr[esi+eax*2]
        cmp     ecx,eax
        jnb     gexitloop

        sub     chain_length,16
        ja      gdo16
        jmp     gnormalbeg0add16

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

gnormbeg MACRO   grcontlab,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     grcontlab
; calculate the good chain_length, and we'll compare scan and match string
        add     chain_length,16-valsub
        jmp     giseq
        ENDM



gnormalbeg2dc11:
        gnormbeg grcontloop11,11

gnormalbeg2dc12:
        gnormbeg short grcontloop12,12

gnormalbeg2dc13:
        gnormbeg short grcontloop13,13

gnormalbeg2dc14:
        gnormbeg short grcontloop14,14

gnormalbeg2dc15:
        gnormbeg short grcontloop15,15

gnormalbeg2dc10:
        gnormbeg grcontloop10,10

gnormalbeg2dc9:
        gnormbeg grcontloop9,9

gnormalbeg2dc8:
        gnormbeg grcontloop8,8

gnormalbeg2dc7:
        gnormbeg grcontloop7,7

gnormalbeg2dc6:
        gnormbeg grcontloop6,6

gnormalbeg2dc5:
        gnormbeg grcontloop5,5

gnormalbeg2dc4:
        gnormbeg grcontloop4,4

gnormalbeg2dc3:
        gnormbeg grcontloop3,3

gnormalbeg2dc2:
        gnormbeg grcontloop2,2

gnormalbeg2dc1:
        gnormbeg grcontloop1,1

gnormalbeg2dc0:
        gnormbeg grcontloop0,0


; we go in normalbeg2 because *(ushf*)(match+best_len-1) == scan_end

gnormalbeg2:
        mov     edi,window

        cmp     bp,word ptr[edi+eax]
        jne     gcontloop3                   ; if *(ushf*)match != scan_start, continue

giseq:
; 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      gbegincompare                ; if equal, go to long compare

; we will determine the unmatch byte and calculate len (in esi)
        or      dl,dl
        je      geq1rr
        mov     esi,3
        jmp     gtrfinval
geq1rr:
        or      dx,dx
        je      geq1

        mov     esi,4
        jmp     gtrfinval
geq1:
        and     edx,0ffffffh
        jz      geq11
        mov     esi,5
        jmp     gtrfinval
geq11:
        mov     esi,6
        jmp     gtrfinval

gbegincompare:
        ; 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      gtrfin                       ; 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     gtrfin
        inc     esi

        or      dx,dx
        jnz     gtrfin
        inc     esi

        and     edx,0ffffffh
        jnz     gtrfin
        inc     esi

gtrfin:
        sub     esi,scan          ; esi = len
gtrfinval:
; here we have finised compare, and esi contain len of equal string
        cmp     esi,best_len        ; if len > best_len, go newbestlen
        ja      short gnewbestlen
; now we restore edx, ecx and esi, for the big loop
        mov     esi,prev
        mov     ecx,limit
        mov     edx,window
        jmp     gcontloop3

gnewbestlen:
        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     gexitloop
        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     gcontloop3

gexitloop:
; 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      gminexlo
        mov     eax,ecx
gminexlo:
; 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
        ret


IFDEF NOUNDERLINE
longest_match   endp
ELSE
_longest_match  endp
ENDIF

_TEXT   ends
end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久66热偷产精品| 欧美三级视频在线观看| 色嗨嗨av一区二区三区| 欧美大肚乱孕交hd孕妇| 亚洲另类在线视频| 成人精品高清在线| 精品久久一区二区| 日韩中文字幕1| 在线看日韩精品电影| 国产午夜亚洲精品羞羞网站| 日韩福利视频网| 色av成人天堂桃色av| 中文字幕欧美区| 激情成人午夜视频| 日韩视频国产视频| 水野朝阳av一区二区三区| 91视视频在线直接观看在线看网页在线看| 日韩欧美激情一区| 日本免费新一区视频| 欧美日韩免费观看一区二区三区 | 亚洲一区二区三区小说| 国产经典欧美精品| 久久久天堂av| 国产一区 二区| 欧美成人一区二区| 免费av网站大全久久| 5858s免费视频成人| 午夜精品久久久久久久久久久| 色美美综合视频| 一区二区欧美在线观看| 欧美亚男人的天堂| 亚洲va国产va欧美va观看| 精品视频在线免费| 日韩在线一二三区| 欧美一级理论片| 麻豆精品一区二区av白丝在线 | 成人av在线播放网站| 国产亚洲欧美日韩俺去了| 国产精品一区二区三区乱码| 国产日本亚洲高清| 成人av在线观| 伊人婷婷欧美激情| 欧美日韩亚洲综合一区二区三区| 亚洲国产综合91精品麻豆| 欧美日韩五月天| 人人超碰91尤物精品国产| 日韩一区二区免费在线观看| 极品尤物av久久免费看| 欧美精品一区二区不卡| 岛国精品在线观看| 亚洲综合色区另类av| 欧美视频一区在线| 玖玖九九国产精品| 中文字幕一区二| 欧美日韩一区二区在线观看视频| 奇米在线7777在线精品| 国产性做久久久久久| 91精品福利视频| 日韩av在线发布| 亚洲国产高清在线| 欧美日韩国产影片| 另类小说视频一区二区| 亚洲欧洲国产日韩| 日韩亚洲国产中文字幕欧美| 国产一区免费电影| 亚洲bt欧美bt精品777| 久久免费偷拍视频| 欧美无砖专区一中文字| 国产麻豆午夜三级精品| 亚洲在线观看免费| www国产精品av| 欧美日韩一二三区| 成人综合激情网| 日韩av一区二区三区四区| 久久亚洲精品国产精品紫薇| 欧美一区二区视频在线观看2020 | 国产日韩亚洲欧美综合| 欧美怡红院视频| 成人视屏免费看| 日韩av中文在线观看| 亚洲精品日韩一| 国产欧美日韩中文久久| 日韩女优毛片在线| 在线一区二区三区做爰视频网站| 国产成人在线电影| 蜜桃av一区二区在线观看 | 国产精品电影一区二区三区| 日韩精品一区二区三区视频在线观看 | 精品亚洲porn| 午夜视频在线观看一区二区 | 亚洲免费观看高清完整| 久久日韩粉嫩一区二区三区| 欧美美女激情18p| 色呦呦一区二区三区| 成人免费观看av| 精品一区二区三区日韩| 天堂久久一区二区三区| 亚洲伦理在线精品| 亚洲人123区| 亚洲色图另类专区| 中文字幕人成不卡一区| 中文一区二区在线观看| 久久精品网站免费观看| 久久久久久久综合日本| 久久久久久久久岛国免费| 精品少妇一区二区三区免费观看 | 不卡欧美aaaaa| 国产v综合v亚洲欧| 成人小视频免费在线观看| 国产精品一区不卡| 国产精品996| 成人性生交大合| 成人av午夜电影| 91色porny| 91久久精品一区二区| 欧美亚洲一区二区三区四区| 在线视频一区二区三区| 色爱区综合激月婷婷| 欧美日韩国产天堂| 91麻豆精品91久久久久久清纯 | 欧美日韩一区成人| 制服视频三区第一页精品| 3751色影院一区二区三区| 日韩亚洲国产中文字幕欧美| www激情久久| 国产精品视频在线看| 亚洲人xxxx| 日韩激情视频网站| 国产麻豆午夜三级精品| caoporen国产精品视频| 色婷婷av一区二区三区软件| 欧美三级三级三级| 欧美mv日韩mv亚洲| 国产精品色婷婷| 亚洲成人综合视频| 国产一区二区调教| 93久久精品日日躁夜夜躁欧美| 在线观看欧美黄色| 欧美xxxx在线观看| 中文字幕亚洲成人| 午夜视频久久久久久| 国产乱子伦一区二区三区国色天香| 国产成人精品在线看| 欧洲国内综合视频| 2023国产精品| 亚洲精品日韩一| 韩国中文字幕2020精品| 91影院在线观看| 69精品人人人人| 国产精品免费aⅴ片在线观看| 亚洲影院理伦片| 国产精品一区2区| 在线不卡的av| 国产精品白丝在线| 美女mm1313爽爽久久久蜜臀| 9久草视频在线视频精品| 在线播放欧美女士性生活| 国产精品美女久久久久aⅴ国产馆| 亚洲777理论| 99久久久无码国产精品| 91精品国产欧美一区二区成人| 国产精品每日更新| 激情五月激情综合网| 欧美吞精做爰啪啪高潮| 欧美国产欧美综合| 另类专区欧美蜜桃臀第一页| 在线视频一区二区免费| 欧美国产精品一区二区三区| 蜜臀av一区二区三区| 欧美性猛交xxxx乱大交退制版 | 亚洲另类一区二区| 国产美女娇喘av呻吟久久| 欧美日韩国产一区二区三区地区| 国产精品麻豆视频| 国产乱色国产精品免费视频| 日韩一级欧美一级| 偷窥少妇高潮呻吟av久久免费| 不卡av在线免费观看| 国产亚洲欧美在线| 国产一区二区三区精品欧美日韩一区二区三区 | 久久久另类综合| 久久精品国产秦先生| 欧美精品日日鲁夜夜添| 亚洲欧美色一区| 99久久精品国产一区| 欧美激情在线观看视频免费| 国产乱色国产精品免费视频| 日韩一级完整毛片| 奇米色777欧美一区二区| 色狠狠色狠狠综合| 一区二区三区日韩精品视频| 成人福利视频网站| 国产精品区一区二区三| 成人av动漫网站| 中日韩免费视频中文字幕| 国产精品亚洲а∨天堂免在线| 精品国产sm最大网站| 国产一区二区在线影院| 2022国产精品视频| 国产麻豆欧美日韩一区|