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

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

?? match.asm

?? 早期freebsd實現
?? ASM
字號:
; match.asm -- optional optimized asm version of longest match in deflate.c; Copyright (C) 1992-1993 Jean-loup Gailly; This is free software; you can redistribute it and/or modify it under the; terms of the GNU General Public License, see the file COPYING.;; 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.; $Id: match.asm,v 0.6 1993/01/21 18:49:05 jloup Exp $        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一区二区三区免费野_久草精品视频
亚洲精品一区二区三区影院| 波多野结衣亚洲| 日韩免费看网站| 狠狠色狠狠色综合系列| 久久久精品免费网站| www.视频一区| 亚洲主播在线观看| 欧美浪妇xxxx高跟鞋交| 日本sm残虐另类| 国产欧美日韩在线视频| 色综合天天性综合| 首页综合国产亚洲丝袜| 精品成a人在线观看| av在线不卡免费看| 亚洲一区二区三区四区在线| 欧美一级国产精品| 高清av一区二区| 亚洲一区在线视频| 欧美精品一区二区不卡| a亚洲天堂av| 日韩精品一级二级| 中文字幕亚洲电影| 日韩欧美在线一区二区三区| av毛片久久久久**hd| 美女网站色91| 亚洲男人的天堂av| 久久综合色一综合色88| 欧洲一区在线观看| 国产夫妻精品视频| 日韩在线一区二区三区| 成人欧美一区二区三区在线播放| 7777女厕盗摄久久久| 99久久婷婷国产| 精品无人码麻豆乱码1区2区| 亚洲一级二级在线| 中文欧美字幕免费| 日韩一级高清毛片| 欧美伊人久久久久久久久影院| 国精产品一区一区三区mba视频| 一区二区三区在线视频观看58 | 91视频你懂的| 麻豆高清免费国产一区| 一区二区三区在线播放| 久久久久久99精品| 欧美伦理电影网| av不卡免费电影| 国产一区二区91| 蜜臀av一区二区在线观看| 一区二区三区小说| 最新成人av在线| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美人xxxx| 欧美网站大全在线观看| va亚洲va日韩不卡在线观看| 激情五月激情综合网| 日韩av电影天堂| 精彩视频一区二区三区| 亚洲大片在线观看| 一区二区三区.www| 综合久久一区二区三区| 中文字幕av一区二区三区免费看| 日韩欧美精品在线| 日韩欧美亚洲另类制服综合在线| 欧美日韩一区三区四区| 欧美三级电影精品| 91久久精品网| 欧美在线制服丝袜| 在线视频国产一区| 欧美午夜宅男影院| 欧美性一级生活| 欧美午夜电影一区| 欧美日韩高清一区二区不卡| 欧美日韩视频第一区| 欧美日韩久久久| 3d动漫精品啪啪| 日韩一级二级三级精品视频| 日韩精品在线网站| 久久久久久久国产精品影院| 国产亚洲制服色| 中文字幕视频一区| 亚洲激情一二三区| 亚洲图片一区二区| 日韩电影免费一区| 国内精品久久久久影院一蜜桃| 精品无人区卡一卡二卡三乱码免费卡| 激情六月婷婷综合| 粉嫩在线一区二区三区视频| www.亚洲国产| 欧美三级电影一区| 日韩精品中文字幕在线不卡尤物| 欧美大片在线观看一区| 国产欧美日韩在线观看| 亚洲欧美日韩中文字幕一区二区三区| 亚洲日本成人在线观看| 天天色 色综合| 久久成人av少妇免费| 国产成人免费在线| 日本韩国一区二区三区视频| 欧美电影在线免费观看| 久久久精品中文字幕麻豆发布| 国产精品久久久久aaaa| 亚洲成a人在线观看| 九色|91porny| 色综合 综合色| 欧美一区欧美二区| 亚洲国产经典视频| 天天影视涩香欲综合网| 国产精品123| 欧美午夜精品电影| 久久免费精品国产久精品久久久久| 中文字幕亚洲区| 欧美a级一区二区| caoporm超碰国产精品| 欧美精品vⅰdeose4hd| 日本一区二区三级电影在线观看| 亚洲最色的网站| 国产在线精品一区在线观看麻豆| 99re这里只有精品6| 日韩欧美成人一区| 亚洲激情综合网| 国产一区二区三区视频在线播放| 91视视频在线观看入口直接观看www| 51午夜精品国产| 综合久久给合久久狠狠狠97色| 秋霞国产午夜精品免费视频| av中文字幕不卡| 久久先锋影音av鲁色资源网| 国产99精品在线观看| 欧美日韩一区不卡| 中文字幕一区视频| 极品少妇一区二区| 精品视频在线视频| 日韩一区有码在线| 国产一区二区日韩精品| 欧美日韩精品一二三区| 亚洲日本一区二区| 国产91精品久久久久久久网曝门| 91麻豆精品国产91久久久久 | 国产一区二区三区黄视频| 色猫猫国产区一区二在线视频| 久久亚洲精品国产精品紫薇| 日韩一区精品视频| 欧美日韩一区视频| 一区二区三区在线免费播放| 成人午夜在线免费| 久久久久国产精品厨房| 免费三级欧美电影| 欧美男同性恋视频网站| 亚洲永久精品大片| 色狠狠一区二区三区香蕉| 亚洲欧洲日产国产综合网| 国产精品1区二区.| 久久蜜臀中文字幕| 韩日欧美一区二区三区| 欧美刺激午夜性久久久久久久| 亚洲国产中文字幕| 欧美日韩中文字幕一区二区| 一区二区免费看| 色婷婷综合久久久久中文一区二区 | 色成人在线视频| 日韩一区中文字幕| 91视频www| 亚洲伦理在线免费看| 色哟哟欧美精品| 一区二区三区免费在线观看| 色网综合在线观看| 亚洲图片一区二区| 欧美高清www午色夜在线视频| 亚洲成a人v欧美综合天堂| 欧美麻豆精品久久久久久| 日韩国产欧美在线播放| 日韩一区二区麻豆国产| 久久不见久久见免费视频7| 日韩精品一区二区三区中文不卡| 麻豆国产欧美日韩综合精品二区| 精品少妇一区二区三区视频免付费| 久久精品久久综合| 国产亚洲精品aa| a在线播放不卡| 亚洲一区二区三区视频在线播放| 欧美另类变人与禽xxxxx| 蜜桃精品视频在线| 国产拍揄自揄精品视频麻豆| 91丝袜高跟美女视频| 亚洲国产成人porn| 欧美电视剧免费观看| 国产99久久久国产精品免费看| 亚洲三级电影网站| 制服丝袜av成人在线看| 国内久久精品视频| 专区另类欧美日韩| 国产乱码精品一品二品| 777xxx欧美| 国产日韩欧美a| 国产一区二区精品久久| 久久99精品久久久久久| 中文字幕永久在线不卡| 欧美日韩在线播放一区| 久久精品久久综合| 久久99久久久欧美国产|