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

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

?? match.asm

?? 匯編大全 中國礦業大學計算機學院 匯編實驗5
?? ASM
字號:
;; Copyright (C) 1990-1993 Mark Adler, Richard B. Wales, and Jean-loup Gailly.; Permission is granted to any individual or institution to use, copy, or; redistribute this software so long as all of the original files are included,; that it is not sold for profit, and that this copyright notice is retained.;; match.asm by Jean-loup Gailly.; match.asm, optimized version of longest_match() in deflate.c; Must be assembled with masm -ml. To be used only with C compact model; or large model. (For large model, assemble with -D__LARGE__).; This file is only optional. If you don't have masm or tasm, use the; C version (add -DNO_ASM to CFLAGS in makefile.msc and remove match.obj; from OBJI). If you have reduced WSIZE in zip.h, then change its value; below.;; Turbo C 2.0 does not support static allocation of more than 64K bytes per; file, and does not have SS == DS. So TC and BC++ users must use:;   tasm -ml -DDYN_ALLOC -DSS_NEQ_DS match;;; To simplify the code, the option -DDYN_ALLOC is supported for OS/2; only if the arrays are guaranteed to have zero offset (allocated by; halloc). We also require SS==DS. This is satisfied for MSC but not Turbo C.        name    matchifndef DYN_ALLOC        extrn   _prev         : word        extrn   _window       : byte        prev    equ  _prev    ; offset part        window  equ  _windowendif_DATA    segment  word public 'DATA'        extrn   _nice_match   : word        extrn   _match_start  : word        extrn   _prev_length  : word        extrn   _good_match   : word        extrn   _strstart     : word        extrn   _max_chain_length : wordifdef DYN_ALLOC        extrn   _prev         : word        extrn   _window       : word        prev    equ 0         ; offset forced to zero        window  equ 0        window_seg equ _window[2]        window_off equ 0else        wseg    dw seg _window        window_seg equ wseg        window_off equ offset _windowendif_DATA    endsDGROUP  group _DATA_TEXT   segment word public 'CODE'        assume  cs: _TEXT, ds: DGROUP        public _match_init        public _longest_match        MIN_MATCH     equ 3        MAX_MATCH     equ 258        WSIZE         equ 32768         ; keep in sync with zip.h !        MIN_LOOKAHEAD equ (MAX_MATCH+MIN_MATCH+1)        MAX_DIST      equ (WSIZE-MIN_LOOKAHEAD)prev_ptr    dw  seg _prev               ; pointer to the prev arrayifdef SS_NEQ_DS    match_start dw  0                   ; copy of _match_start if SS != DS    nice_match  dw  0                   ; copy of _nice_match  if SS != DSendif; initialize or check the variables used in match.asm.ifdef __LARGE___match_init proc far                    ; 'proc far' for large modelelse_match_init proc near                   ; 'proc near' for compact modelendififdef SS_NEQ_DS        ma_start equ cs:match_start     ; does not work on OS/2        nice     equ cs:nice_match        mov     ax,_nice_match        mov     cs:nice_match,ax        ; ugly write to code, crash on OS/2else        assume ss: DGROUP        ma_start equ ss:_match_start        nice     equ ss:_nice_match        mov     ax,ds        mov     bx,ss        cmp     ax,bx                   ; SS == DS?        jne     errorendififdef DYN_ALLOC        cmp     _prev[0],0              ; verify zero offset        jne     error        cmp     _window[0],0        jne     error  ifdef SS_NEQ_DS        mov     ax,_prev[2]             ; segment value        mov     cs:prev_ptr,ax          ; ugly write to code, crash on OS/2        prev_seg  equ cs:prev_ptr  else        prev_seg  equ ss:_prev[2]       ; works on OS/2 if SS == DS  endifelse        prev_seg  equ cs:prev_ptrendif        retifdef __LARGE__        extrn   _exit : far             ; 'far' for large modelelse        extrn   _exit : near            ; 'near' for compact modelendiferror:  call    _exit_match_init endp; -----------------------------------------------------------------------; Set match_start to the longest match starting at the given string and; return its length. Matches shorter or equal to prev_length are discarded,; in which case the result is equal to prev_length and match_start is; garbage.; IN assertions: cur_match is the head of the hash chain for the current;   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1; int longest_match(cur_match)ifdef __LARGE___longest_match  proc far                 ; 'proc far' for large modelelse_longest_match  proc near                ; 'proc near' for compact modelendif        push    bp        mov     bp,sp        push    di        push    si        push    dsifdef __LARGE__        cur_match    equ word ptr [bp+6] ; [bp+6] for large modelelse        cur_match    equ word ptr [bp+4] ; [bp+4] for compact modelendif;       window       equ es:window (es:0 for DYN_ALLOC);       prev         equ ds:prev;       match        equ es:si;       scan         equ es:di;       chain_length equ bp;       best_len     equ bx;       limit        equ dx        mov     si,cur_match            ; use bp before it is destroyed        mov     bp,_max_chain_length    ; chain_length = max_chain_length        mov     di,_strstart        mov     dx,di        sub     dx,MAX_DIST             ; limit = strstart-MAX_DIST        jae     limit_ok        sub     dx,dx                   ; limit = NILlimit_ok:        add     di,2+window_off         ; di = offset(window + strstart + 2)        mov     bx,_prev_length         ; best_len = prev_length        mov     es,window_seg        mov     ax,es:[bx+di-3]         ; ax = scan[best_len-1..best_len]        mov     cx,es:[di-2]            ; cx = scan[0..1]        cmp     bx,_good_match          ; do we have a good match already?        mov     ds,prev_seg             ; (does not destroy the flags)        assume  ds: nothing        jb      do_scan                 ; good match?        shr     bp,1                    ; chain_length >>= 2        shr     bp,1        jmp     short do_scan        even                            ; align destination of branchlong_loop:; at this point, ds:di == scan+2, ds:si == cur_match        mov     ax,[bx+di-3]            ; ax = scan[best_len-1..best_len]        mov     cx,[di-2]               ; cx = scan[0..1]        mov     ds,prev_seg             ; reset ds to address the prev arrayshort_loop:; at this point, di == scan+2, si = cur_match,; ax = scan[best_len-1..best_len] and cx = scan[0..1]if (WSIZE-32768)        and     si,WSIZE-1              ; not needed if WSIZE=32768endif        shl     si,1                    ; cur_match as word index        mov     si,prev[si]             ; cur_match = prev[cur_match]        cmp     si,dx                   ; cur_match <= limit ?        jbe     the_end        dec     bp                      ; --chain_length        jz      the_enddo_scan:        cmp     ax,word ptr es:window[bx+si-1] ; check match at best_len-1        jne     short_loop        cmp     cx,word ptr es:window[si]      ; check min_match_length match        jne     short_loop        lea     si,window[si+2]         ; si = match        mov     ax,di                   ; ax = scan+2        mov     cx,es        mov     ds,cx                   ; ds = es = window        mov     cx,(MAX_MATCH-2)/2      ; scan for at most MAX_MATCH bytes        repe    cmpsw                   ; loop until mismatch        je      maxmatch                ; match of length MAX_MATCH?mismatch:        mov     cl,[di-2]               ; mismatch on first or second byte?        sub     cl,[si-2]               ; cl = 0 if first bytes equal        xchg    ax,di                   ; di = scan+2, ax = end of scan        sub     ax,di                   ; ax = len        sub     si,ax                   ; si = cur_match + 2 + offset(window)        sub     si,2+window_off         ; si = cur_match        sub     cl,1                    ; set carry if cl == 0 (can't use DEC)        adc     ax,0                    ; ax = carry ? len+1 : len        cmp     ax,bx                   ; len > best_len ?        jle     long_loop        mov     ma_start,si             ; match_start = cur_match        mov     bx,ax                   ; bx = best_len = len        cmp     ax,nice                 ; len >= nice_match ?        jl      long_loopthe_end:        pop     ds        assume  ds: DGROUPifdef SS_NEQ_DS        mov     ax,ma_start             ; garbage if no match found        mov     ds:_match_start,axendif        pop     si        pop     di        pop     bp        mov     ax,bx                   ; result = ax = best_len        retmaxmatch:                               ; come here if maximum match        cmpsb                           ; increment si and di        jmp     mismatch                ; force match_length = MAX_LENGTH        _longest_match  endp_TEXT   endsend

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡av在线网| 国产精品久久久久久久久免费樱桃| 亚洲国产美女搞黄色| 日日摸夜夜添夜夜添精品视频| 日韩午夜在线观看视频| 亚洲色图20p| 国产乱码精品一区二区三区忘忧草 | 国产精品1区2区3区| 91精品办公室少妇高潮对白| 91污片在线观看| 亚洲香蕉伊在人在线观| 国产综合成人久久大片91| 欧美日韩精品一区二区| 欧美视频一区二区三区在线观看| 欧美日韩日本视频| 亚洲柠檬福利资源导航| 亚洲1区2区3区视频| 色综合网站在线| 欧美激情资源网| 国产一区二三区好的| 精品美女一区二区三区| 国产精品欧美综合在线| 亚洲人成小说网站色在线| 国产成人av自拍| 久久免费美女视频| 国产成人在线视频网站| 成人涩涩免费视频| 亚洲国产精品精华液2区45| 国产伦理精品不卡| 色综合久久综合中文综合网| 中文字幕在线不卡一区二区三区| 亚洲欧洲精品一区二区三区| 成人永久免费视频| 欧美男女性生活在线直播观看| 精品少妇一区二区三区免费观看| 国产精品全国免费观看高清| 亚洲国产精品视频| 欧美美女激情18p| 午夜精品久久久久久久99水蜜桃| 国产精品羞羞答答xxdd| 久久理论电影网| 国产成人在线视频免费播放| 中文字幕乱码日本亚洲一区二区| 午夜精品视频在线观看| 欧美久久久一区| 久久99国产精品尤物| 日本丶国产丶欧美色综合| 日韩精品一区二区三区三区免费| 亚洲三级久久久| 欧美日韩色一区| 中文字幕一区日韩精品欧美| 日韩av网站在线观看| 精品剧情在线观看| 成人免费高清在线| 亚洲成人黄色影院| 久久亚洲免费视频| 91麻豆自制传媒国产之光| 久久久久国色av免费看影院| 播五月开心婷婷综合| 久久久午夜精品| 国产亚洲欧美日韩日本| 成人h版在线观看| 亚洲444eee在线观看| 国产三级久久久| 欧美性猛交xxxxxxxx| 国产又黄又大久久| 亚洲欧美区自拍先锋| www.成人在线| 男男视频亚洲欧美| 亚洲欧洲国产专区| 欧美一区二区三区系列电影| 成人一二三区视频| 亚洲国产精品久久不卡毛片| 久久先锋资源网| 国产一区二区三区免费观看| 亚洲色图制服丝袜| 精品国产亚洲在线| 色婷婷精品久久二区二区蜜臀av| 久久久无码精品亚洲日韩按摩| 久久99九九99精品| 亚洲一二三四久久| 欧美国产一区在线| 欧美成人伊人久久综合网| 91福利在线免费观看| 国产.精品.日韩.另类.中文.在线.播放| 欧美成人一区二区| 91福利国产精品| 成人免费看的视频| 国产精品12区| 免费欧美日韩国产三级电影| 亚洲精品在线三区| 国产mv日韩mv欧美| 久久se精品一区二区| 亚洲国产精品一区二区久久恐怖片 | 中文字幕中文字幕在线一区| 制服丝袜中文字幕亚洲| 久久综合色婷婷| 91麻豆精品国产91久久久久久久久 | 国产精品免费丝袜| 日韩欧美在线综合网| 欧美日韩国产bt| 精品视频全国免费看| 91美女视频网站| 日本午夜精品视频在线观看| 久久中文字幕电影| 欧美大片在线观看| 日韩欧美国产一二三区| 4438成人网| 日韩欧美亚洲一区二区| 国产91清纯白嫩初高中在线观看| 亚洲欧洲国产日本综合| 中文字幕亚洲不卡| 国产精品毛片久久久久久| 亚洲国产岛国毛片在线| 欧美激情一区二区三区四区 | 成人亚洲一区二区一| 亚洲欧美一区二区不卡| 亚洲日本va午夜在线电影| 国产精品久久久久久久久免费丝袜 | 精品一区二区在线视频| 国产精品久久99| 亚洲欧洲精品一区二区三区不卡| 6080yy午夜一二三区久久| 欧美日韩国产高清一区二区| 欧美日韩亚洲综合在线| 国产999精品久久| 岛国一区二区在线观看| 不卡区在线中文字幕| 91搞黄在线观看| 欧美一区三区四区| 久久这里只有精品6| 欧美国产欧美综合| 亚洲精品久久久蜜桃| 日韩精品亚洲一区| 国产一区二区中文字幕| av高清不卡在线| 欧美精品久久一区二区三区| 成人久久视频在线观看| 在线观看国产日韩| 日韩一区二区免费电影| 久久久久久久性| 亚洲欧美偷拍三级| 久久国产精品无码网站| 波多野结衣一区二区三区| 精品视频在线视频| 国产亚洲欧美在线| 一区二区三区不卡视频| 精品一区在线看| 在线亚洲一区二区| 欧美成人高清电影在线| 成人欧美一区二区三区在线播放| 久久久精品tv| 午夜精品福利一区二区蜜股av | 久久综合999| 亚洲美女屁股眼交3| 免费一级片91| 在线观看视频一区二区 | 国产主播一区二区| 美腿丝袜一区二区三区| 粉嫩高潮美女一区二区三区| 欧美中文字幕一区二区三区 | 丁香啪啪综合成人亚洲小说 | 青青草伊人久久| 乱一区二区av| 99久久免费精品高清特色大片| 成人福利视频网站| 日韩欧美一级二级三级久久久| 日韩欧美资源站| 一区二区国产盗摄色噜噜| 国产在线精品视频| 欧美久久久久免费| 日韩区在线观看| 天天av天天翘天天综合网 | 亚洲国产wwwccc36天堂| 五月天一区二区| 91麻豆国产精品久久| 久久久久久久av麻豆果冻| 日本成人在线视频网站| 欧美亚州韩日在线看免费版国语版| 在线观看av一区| 亚洲人成小说网站色在线| 香蕉成人啪国产精品视频综合网| 亚洲成人免费在线| 91视频在线观看| 欧美国产一区在线| 国产99久久久国产精品免费看| 99久久久国产精品免费蜜臀| 久久女同性恋中文字幕| 韩国女主播一区二区三区| 欧美一区二区国产| 舔着乳尖日韩一区| 欧美日韩中文字幕一区二区| 欧美大片顶级少妇| 麻豆精品一区二区三区| 成人av资源网站| 国产精品久久三| 不卡的电视剧免费网站有什么| 欧美色视频一区| 亚洲综合丁香婷婷六月香| 美女视频一区二区|