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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? path.asm

?? Dos6.0
?? ASM
字號(hào):
        Page    ,132
        title   Path Searching Routines

; PATH.ASM - Code to search the environment for a particular data string,
; and to search the path for a particular file.  Adapted from the original
; COMMAND.COM version.
;
; Routines supported:
;       Find_in_Environment - locate the start of a given string
;                               in the environment
;       Path_Crunch - concantenates a file name with a directory path from
;                       the PATH environment variable
;       Search - Finds executable or other files, given a base name
;
        include dossym.inc
        include curdir.inc
        include find.inc
        include pdb.inc
        include syscall.inc

        DATA segment para public
Path_str        db      "PATH="
Path_str_size   equ     $ - offset Path_Str

Comspec_str     db      "COMSPEC="
Comspec_str_size equ    $ - offset Comspec_str

        DATA ends

        CODE segment para public
        assume	cs:CODE,ds:DATA

IFDEF DBCS
        extrn   IsDBCSLeadByte:near
ENDIF

;----------------------------------------------------------------------------
; Path_Crunch - takes a pointer into a environment PATH string and a file
; name, and sticks them together, for subsequent searching.
;
; ENTRY:
;   BH			--	additional terminator character (i.e., ';')
;   DS:SI		--	pointer into pathstring to be dissected
;   ES:DI               --      buffer to store target name
;   DX			--	pointer to filename
; EXIT:
;   SI			--	moves along pathstring from call to call
;   ES:DI               --      filled in with concatenated name
;   Carry set if end of path string has been reached.
;
;---------------
Path_Crunch PROC NEAR
        public  Path_Crunch
;---------------
        assume  ds:nothing
        assume  es:DATA

IFDEF DBCS
	xor	cl,cl				; clear flag for later use 3/3/KK
ENDIF

path_cr_copy:
	lodsb					; get a pathname byte
	or	al,al				; check for terminator(s)
	jz	path_seg			; null terminates segment & pathstring
	cmp	AL, BH
	jz	path_seg			; BH terminates a pathstring segment

IFDEF DBCS
	invoke	IsDBCSLeadByte			;
	jz	NotKanj2			;
	stosb					;
	movsb					;
	MOV	CL,1				; CL=1 means latest stored char is DBCS
	jmp	path_cr_copy			;

NotKanj2:					;
	xor	cl,cl				; CL=0 means latest stored char is SBCS
ENDIF

	stosb					; save byte in concat buffer
	jmp	path_cr_copy			; loop until we see a terminator

path_seg:
        push    si                              ; save resting place in env. seg.
	mov	BL, AL				; remember if we saw null or not...

path_cr_look:					; form complete pathname
	mov	al, '\'      			; add pathname separator for suffix

IFDEF DBCS
	or	cl,cl				;
	jnz	path_cr_store			; this is a trailing byte of ECS code 3/3/KK
ENDIF
	cmp	al,es:byte ptr [di-1]
	jz	path_cr_l1

path_cr_store:					
	stosb

path_cr_l1:
	mov	SI, DX

path_cr_l2:
	lods	byte ptr es:[si]       		; tack the stripped filename onto
	stosb					; the end of the path, up to and
	or	AL, AL				; including the terminating null
	jnz	path_cr_l2

path_cr_leave:
	or	BL, BL				; did we finish off the pathstring?
	clc
        jnz	path_cr_exit			; null in BL means all gone...
	cmc

path_cr_exit:
        pop     si                              ; retrieve
	ret

        assume  es:nothing

;---------------
Path_Crunch endp
;----------------------------------------------------------------------------

;----------------------------------------------------------------------------
;   SEARCH, when given a pathname, attempts to find a file with
; one of the following extensions:  .com, .exe (highest to
; lowest priority).  Where conflicts arise, the extension with
; the highest priority is favored.
; ENTRY:
;   DX		--	pointer to null-terminated pathname
;   BX  	--	dma buffer for findfirst/next
;   AL          --      0 if we should look for .COM and .EXE extensions
;                       1 if extensions is pre-specified
; EXIT:
;   AX		--	8)  file found with .com extension, or file with
;                           pre-specified extension found
;			4)  file found with .exe extension
;			0)  no such file to be found
;   DX          --      points to resolved path name 
;   DS          --      DATA
; NOTES:
;   1)	Requires caller to have allocated executed a setdma.
;       
;---------------
; CONSTANTS:
;---------------
search_attr                 equ         attr_read_only+attr_hidden
search_file_not_found	    equ 	0
search_com		    equ 	8
search_exe		    equ 	4
fname_len		    equ 	8
fname_max_len		    equ 	23
dot			    equ 	'.'
wildchar		    equ 	'?'

search_best                 db          (?)
;---------------
Search PROC NEAR
        public Search
;---------------
        push    si                              ; 
        push    ax                              ; save extension flag
	mov	DI, DX				; working copy of pathname

	mov	CX, search_attr 		; filetypes to search for
        mov     ah, Find_First			; request first match, if any
        int     21h
        pop     ax                              
	jc	search_no_file
        
        or      al,al                           ; looking for specific ext?
        jz      search_no_ext                   ; no, jump
        mov     search_best,search_com          ; report we found best match
        jmp     short search_file_found         ; yes, found it

search_no_ext:
        mov     search_best, search_file_not_found

search_loop:
	call	search_ftype			; determine if .com, &c...
	cmp	AL, search_best 		; better than what we've found so far?
	jle	search_next			; no, look for another
	mov	search_best, AL 		; found something... save its code
	cmp	AL, search_com			; have we found the best of all?
	je	search_done

search_next:					; keep on looking
	mov	CX, search_attr
        mov     ah, Find_Next                   ; next match
        int     21h
	jnc	search_loop

search_done:					; it's all over with...
        cmp     search_best, search_file_not_found
        je      search_no_file
        cmp     search_best, search_com
        mov     si, offset comext
        je      search_move_ext
        mov     si, offset exeext

search_move_ext:
        mov     di, dx
        mov     al, '.'
        mov     cx, DIRSTRLEN
        rep     scasb
        dec     di
        movsw   
        movsw   

search_file_found:
        mov     al, search_best
	jmp	short search_exit

search_no_file: 				; couldn't find a match
	mov	AX, search_file_not_found

search_exit:
        pop     si
	ret
Search endp
;----------------------------------------------------------------------------


;----------------------------------------------------------------------------
;   SEARCH_FTYPE determines the type of a file by examining its extension.
; ENTRY:
;   BX    --	    dma buffer containing filename
; EXIT:
;   AL	    --	    file code, as given in search header
;---------------
comext  db      ".COM",0
exeext  db      ".EXE",0

Search_Ftype PROC NEAR
        public Search_Ftype

	push	DI
	mov	AL, search_file_not_found			; find the end of the filename
	mov	DI, BX
        add     si,Find_Buf_Pname
	mov	CX, fname_max_len
	cld
	repnz	scasb				; search for the terminating null
	jnz	ftype_exit			; weird... no null byte at end
;
; Scan backwards to find the start of the extension
;
        dec     di                              ; point back to null
        mov     cx, 5                           ; . + E + X + T + null
        std                                     ; scan back
        mov     al, '.'
        repnz   scasb
        jnz     ftype_exit                      ; must not be any extension
        inc     di                              ; point to start of extension
        cld
;
; Compare .COM
;
	mov	si,offset comext
	mov	ax,di
	cmpsw
	jnz	ftype_exe
	cmpsw
	jnz	ftype_exe
	mov	AL, search_com			; success!
	jmp	short ftype_exit
;
; Compare .EXE
;
ftype_exe:					; still looking... now for '.exe'
	mov	di,ax
	mov	si,offset exeext
	cmpsw
	jnz	ftype_fail
	cmpsw
	jnz	ftype_fail
	mov	AL, search_exe			; success!
	jmp	short ftype_exit

ftype_fail:					; file doesn't match what we need
	mov	al,search_file_not_found

ftype_exit:
	pop	DI
	ret

Search_Ftype endp

;----------------------------------------------------------------------------
;
; Find_Comspec_In_Environment - find the beginning of the COMSPEC string
;       Entry : DS = DATA
;               ES = PSP
;       Exit  : ES:DI => start of Comspec path
;       

FIND_COMSPEC_IN_environment PROC NEAR
        public Find_Comspec_In_Environment
        lea     si,Comspec_str
	mov     cx,Comspec_str_size		; cx = length of name
        jmp     short Find_in_Environment
Find_Comspec_in_Environment        endp

;----------------------------------------------------------------------------
;
; Find_Path_In_Environment - find the beginning of the PATH string
;       Entry : DS = DATA
;               ES = PSP
;       Exit  : ES:DI => start of Path directory list
;       

FIND_PATH_IN_environment PROC NEAR
        public Find_Path_In_Environment
        lea     si,Path_str
	mov     cx,Path_str_size		; cx = length of name
; fall through to following
Find_Path_in_Environment        endp


; Find_In_Environment - locate a given string in the environment
;        
; Input :       SI = name to find in environment
;               CX = length of name
;               DS = DATA
;               ES = PSP segment
;
; Output: ES:DI points to the arguments in the environment
;	  carry is set if name not found
;

Find_in_Environment PROC NEAR
        public Find_In_Environment

	cld
        xor     di,di
        mov     ax,es:[di].PDB_Environ
        or      ax,ax                          ; is there an environment?
        jz      find_nf_exit                   ; no, quit now
        mov     es,ax
        assume  es:nothing        

find1:
        push    si
        push    cx                              ; save starting values
find11:

ifdef dbcs
	lodsb
	call	IsDBCSLeadByte
	jz	notkanj3
	dec	si
	lodsw
	inc	di
	inc	di
	cmp	ax,es:[di-2]
	jnz	find12
	dec	cx
	loop	find11
	jmp	short find12

notkanj3:
	inc	di
	cmp	al,es:[di-1]
	jnz	find12
	loop	find11

else    ;dbcs

        repe cmpsb   

endif   ;dbcs

find12:
        pop     dx
        pop     si                              ; clear stack
	jz      find_exit
        dec     di
	xor	al,al				; scan for a nul
	mov	cx,100h                         ; arbitrary size 
	repnz	scasb
	cmp	byte ptr es:[di],0              ; check for trailing null
        mov     cx,dx                           ; original count back in CX
	jnz	find1
	
find_nf_exit:
        stc					; indicate not found

find_exit:
	ret

Find_in_environment endp


CODE    ends
        end

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品久久久久影院一蜜桃| 麻豆国产精品777777在线| 欧美巨大另类极品videosbest| 久久精品999| 亚洲欧美色一区| 精品乱人伦小说| 欧美日韩一区二区三区在线| 国产高清成人在线| 国内精品国产成人| 国产无人区一区二区三区| 91丨九色丨蝌蚪丨老版| 国产曰批免费观看久久久| 亚洲国产裸拍裸体视频在线观看乱了| 国产亚洲视频系列| 欧美久久久久久久久中文字幕| 大美女一区二区三区| 美国毛片一区二区| 亚洲大片免费看| 亚洲男人电影天堂| 国产精品视频免费看| 精品少妇一区二区三区| 欧美丰满少妇xxxbbb| 欧美在线高清视频| 一本大道久久a久久综合婷婷 | 久久久久久久综合日本| 欧美精选一区二区| 欧美日韩一级片网站| 在线看日韩精品电影| jlzzjlzz亚洲女人18| 岛国精品在线播放| 国产剧情一区二区三区| 亚洲精品伦理在线| 国产精品色婷婷久久58| 国产视频一区在线播放| 久久久无码精品亚洲日韩按摩| 欧美r级电影在线观看| 欧美电视剧免费观看| 日韩一区二区三区视频| 欧美成人一级视频| 欧美成人福利视频| 精品第一国产综合精品aⅴ| 日韩欧美国产麻豆| 久久网站热最新地址| 国产亚洲一二三区| 国产女人aaa级久久久级| 国产视频一区二区三区在线观看| 国产亚洲女人久久久久毛片| 国产日韩精品视频一区| 中文字幕一区二区三区四区不卡| 亚洲色图清纯唯美| 亚洲午夜免费福利视频| 日日夜夜精品免费视频| 久久99精品一区二区三区三区| 韩日av一区二区| 成人激情图片网| 日韩欧美一级特黄在线播放| 精品综合免费视频观看| 爽好多水快深点欧美视频| 亚洲电影一区二区| 男人操女人的视频在线观看欧美| 久久成人免费电影| 成人一区二区三区| 在线欧美小视频| 日韩一区二区免费高清| 久久伊99综合婷婷久久伊| 国产精品色呦呦| 亚洲一级片在线观看| 老司机精品视频一区二区三区| 国产露脸91国语对白| 99re热视频这里只精品| 欧美老女人第四色| 国产欧美日韩视频在线观看| 亚洲免费在线观看| 日精品一区二区三区| 国产成人在线视频网站| 色94色欧美sute亚洲线路一ni| 国产亚洲精品bt天堂精选| 欧美mv日韩mv国产网站app| 日本一区二区免费在线观看视频| 亚洲欧美影音先锋| 国产精品12区| 91色|porny| 日韩一级成人av| 亚洲婷婷综合久久一本伊一区| 日韩精品电影在线观看| 成人午夜免费视频| 制服丝袜亚洲色图| 亚洲国产精品国自产拍av| 亚洲狠狠爱一区二区三区| 国产高清精品网站| 3atv在线一区二区三区| 国产精品福利在线播放| 麻豆视频观看网址久久| 一本在线高清不卡dvd| 日韩免费一区二区| 亚洲综合色视频| 成人综合婷婷国产精品久久免费| 欧美视频日韩视频| 国产精品久久久久aaaa| 麻豆精品蜜桃视频网站| 欧美三级日本三级少妇99| 国产欧美一区二区精品仙草咪| 午夜免费欧美电影| a级高清视频欧美日韩| 欧美mv日韩mv| 婷婷开心激情综合| 色狠狠一区二区| 国产精品美女久久久久久久久 | 亚洲成人av在线电影| 国产福利精品一区二区| 欧美一级黄色片| 亚洲小少妇裸体bbw| 91在线云播放| 欧美激情综合五月色丁香| 久久精品国产99国产| 欧美日韩国产片| 一区二区三区在线免费| 成人黄色大片在线观看| 26uuu欧美日本| 九色综合国产一区二区三区| 欧美丰满少妇xxxbbb| 亚洲国产精品久久人人爱蜜臀| 91在线视频官网| 中文字幕欧美区| 国产精品一区二区久激情瑜伽| 日韩美女在线视频| 日本成人在线视频网站| 欧美美女一区二区在线观看| 一区二区高清在线| 色成人在线视频| 蜜桃传媒麻豆第一区在线观看| 99久久久国产精品| 国产精品毛片无遮挡高清| 国产高清成人在线| 久久久不卡网国产精品二区| 激情另类小说区图片区视频区| 日韩欧美亚洲另类制服综合在线| 日韩av成人高清| 日韩一区二区精品在线观看| 男人的j进女人的j一区| 欧美电影免费观看高清完整版在 | 色av综合在线| 亚洲精品国产精华液| 日本韩国欧美一区二区三区| 亚洲欧美一区二区三区极速播放 | 偷偷要91色婷婷| 欧美一区二区播放| 另类小说图片综合网| 亚洲精品在线免费播放| 国产精品一区久久久久| 国产精品色婷婷| 色婷婷av一区二区三区大白胸| 亚洲综合久久久| 911精品国产一区二区在线| 免费观看久久久4p| 国产一区二区在线电影| 久久婷婷国产综合国色天香 | 成人性生交大片免费| 国产精品久线观看视频| 色呦呦一区二区三区| 日韩精品成人一区二区在线| 日韩女同互慰一区二区| 成人污视频在线观看| 亚洲黄色av一区| 日韩一区二区三区三四区视频在线观看| 美女脱光内衣内裤视频久久网站 | 国内精品写真在线观看| 欧美激情在线看| 色就色 综合激情| 蜜桃精品视频在线观看| 国产精品久久久久影院老司| 在线观看不卡视频| 久草精品在线观看| 亚洲人快播电影网| 欧美一区二区三区系列电影| 国产一区二区三区黄视频| 亚洲精品写真福利| 日韩免费视频线观看| 97久久精品人人做人人爽| 日本在线不卡视频| 国产精品久久久一区麻豆最新章节| 日本久久一区二区三区| 精品夜夜嗨av一区二区三区| 自拍偷拍欧美精品| 日韩欧美色综合| 日本精品视频一区二区三区| 久久精品久久久精品美女| 亚洲柠檬福利资源导航| 精品久久久久久久久久久院品网| 色偷偷一区二区三区| 久99久精品视频免费观看| 亚洲卡通动漫在线| 欧美成人精品1314www| 欧美性生活影院| 成人免费不卡视频| 久久精品国产99| 亚洲国产一区在线观看| 欧美高清在线精品一区| 欧美mv日韩mv| 在线播放91灌醉迷j高跟美女|