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

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

?? setargv.asm

?? c言語軟件
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
	NAME	SETARGV
	PAGE	60,132
;[]------------------------------------------------------------[]
;|	SETARGV.ASM -- Parse Command Line			|
;|								|
;|	Turbo-C Run Time Library	version 2.0		|
;|								|
;|	Copyright (c) 1987,1988 by Borland International Inc.	|
;|	All Rights Reserved.					|
;[]------------------------------------------------------------[]

	INCLUDE RULES.ASI

;	Segment and Group declarations

Header@

;	External references

ExtSym@		_argc, WORD, __CDECL__
dPtrExt@	_argv, __CDECL__
ExtSym@		_psp, WORD, __CDECL__
ExtSym@		_envseg, WORD, __CDECL__
ExtSym@		_envLng, WORD, __CDECL__
ExtSym@		_osmajor, BYTE, __CDECL__
ExtProc@	abort, __CDECL__

ifdef	WILD
ExtProc@	sbrk, __CDECL__
endif

	SUBTTL	Parse Command Line
	PAGE
;/*							*/
;/*-----------------------------------------------------*/
;/*							*/
;/*	Parse Command Line				*/
;/*	------------------				*/
;/*							*/
;/*-----------------------------------------------------*/
;/*							*/
PSPCmd		equ	00080h

CSeg@

IF	LPROG
SavedReturn	dd	?
ELSE
SavedReturn	dw	?
ENDIF
SavedDS		dw	?
SavedBP		dw	?


ifdef	WILD

;------------------------------------------------------------------------------
;
; Not enough space on stack for the program name.
;
BadProgName	label	near
		jmp	abort@

endif

;==============================================================================

ifdef	WILD
PubProc@	_wildargv, __CDECL__
else
PubProc@	_setargv, __CDECL__
endif

;	First, save caller context and Return Address

		pop	word ptr SavedReturn
IF	LPROG
		pop	word ptr SavedReturn+2
ENDIF
		mov	SavedDS, ds
		cld

;	Compute Command Line size

		mov	es, _psp@
		mov	si, PSPCmd	; ES: SI = Command Line address
		xor	ah, ah
		lods	byte ptr es:[si]
		inc	ax		; AX = Command Line size including \r
		mov	bp, es
		xchg	dx, si		; BP:DX = Command Line address
		xchg	bx, ax		; BX	= Command line size

;	Compute Program Name size

		mov	si, _envLng@
		add	si, 2		; SI = Program name offset
		mov	cx, 1		; CX = Filename size (includes \0)
		cmp	_osmajor@, 3
		jb	NoProgramName
		mov	es, _envseg@
		mov	di, si		; SI = argv[0] address
		mov	cl, 07fh
		xor	al, al
		repnz	scasb
		jcxz	BadProgName
		xor	cl, 07fh	; CX = Filename size (includes \0)
NoProgramName	label	near

;	Reserve space for the arguments

		sub	sp, 2		; To be sure nothing in SS:FFFF
		mov	ax, 1
ifndef	WILD
		add	ax, bx
endif
		add	ax, cx
		and	ax, not 1
		mov	di, sp
		sub	di, ax
		jb	BadProgName
		mov	sp, di		; SS:DI = Command Line storage address

;	Copy ProgName to the stack

		mov	ax, es
		mov	ds, ax
		mov	ax, ss
		mov	es, ax
ifndef	WILD
		push	cx
endif
		dec	cx
		rep	movsb
		xor	al, al
		stosb			; ASCIIZ string

;	Process Command Line.

;==============================================================================
ifdef WILD
;==============================================================================

;
; The value of "wild_attr" is used in the "findfirst" call as the file
; attribute.
;
; The default value is 0, which will only include "regular" files.
;
; Adding 10H to this value will include directories, 04h will include system
; files, and 02h will include hidden files.
;

wild_attr	equ	0			; include only regular files

;------------------------------------------------------------------------------

ffblk		struc

ff_reserved	db	21 dup (?)
ff_attrib	db	?
ff_ftime	dw	?
ff_fdate	dw	?
ff_fsize	dd	?
ff_name		db	14 dup (?)

ffblk		ends

wild_init_space	equ	128			; initial buffer allocation
wild_more_space	equ	256			; buffer size increment

;------------------------------------------------------------------------------

wild_buff_addr	equ	[bp]
wild_buff_size	equ	[bp+4]
wild_buff_max	equ	[bp+6]
wild_arg_src	equ	[bp+8]
wild_arg_dst	equ	[bp+10]

wild_argument	equ	[bp+12]
wild_destin	equ	[bp+16]
wild_path_len	equ	[bp+20]
wild_argc	equ	[bp+22]

wild_DTA_save	equ	[bp+24]
wild_ffblk	equ	[bp+28]

wild_frame_size	equ	28 + TYPE ffblk

;------------------------------------------------------------------------------

		mov	cx, bp			; save segment of command line
		dec	bx			; don't need trailing \0

		sub	sp, wild_frame_size
		mov	bp, sp			; bp points at local variables

		push	dx			; save cmd line addr
		push	cx			; save cmd line seg
		push	bx			; save cmd line size
		mov	ax, wild_init_space
		mov	wild_buff_size, ax	; save initial size
ifndef	__HUGE__
		mov	ds, savedDS
endif
		push	ax
		call	sbrk@
		pop	cx			; toss parameter
		pop	cx			; restore cmd line size
		pop	ds			; restore cmd line seg
		pop	si			; restore cmd line addr

		mov	wild_buff_addr, ax	; save offset
if	LDATA
		mov	wild_buff_addr+2, dx	; save segment
		and	ax, dx
else
		mov	wild_buff_addr+2, ss	; seg = SS
endif
		cmp	ax, -1
		je	NoSbrkSpace		; abort if not enough space
		add	ax, wild_buff_size
		mov	wild_buff_max, ax	; save max offset

		mov	ah, 2fh
		int	21h			; get current DTA
		mov	wild_DTA_save, bx
		mov	wild_DTA_save+2, es
		push	ds
		push	ss			; fflbk is on stack
		pop	ds
		lea	dx, wild_ffblk
		mov	ah, 1ah
		int	21h			; switch DTA to ffblk
		pop	ds

		les	di, dword ptr wild_buff_addr
		xor	dx, dx			; dx = # of arguments
;
; Start new argument.
;
NewArg:		mov	wild_arg_dst, di
		xor	bh, bh			; bh = wildcard flag
;
; Skip leading whitespace.
;
ArgCopy:	mov	wild_arg_src, si	; save address of argument
		call	GetChar
		jc	ArgCopyDone		; jump if no more characters
		jz	ArgCopyLoop
		cmp	al, ' '
		je	ArgCopy			; skip whitespace
		cmp	al, 9
		je	ArgCopy
		cmp	al, 13
		je	ArgCopy
		cmp	al, '"'
		je	ArgQuote		; jump if quoted string
;
; Loop to copy unquoted argument.
;
ArgCopyLoop:	call	ArgPushChar		; store character in destination
		call	GetChar
		jc	ArgComplete		; jump if end of line
		jz	ArgCopyLoop		; jump if \"
		cmp	al, ' '
		je	ArgComplete		; whitespace terminates
		cmp	al, 9
		je	ArgComplete
		cmp	al, 13
		je	ArgComplete		; whitespace terminates
		cmp	al, '"'
		jne	ArgCopyLoop
ArgComplete:	call	ProcessArg		; copy or expand argument
		jmp	SHORT NewArg

NoSbrkSpace:	jmp	abort@			; error jump

;
; Here if quoted argument.
;
ArgQuote:	call	GetChar
		jc	QuoteDone
		jz	QuoteNext
		cmp	al, '"'			; terminating quote ?
		je	QuoteDone
QuoteNext:	call	ArgPushChar		; store character in destination
		jmp	SHORT ArgQuote
;
; End of a quoted argument. Push terminating null, do not expand.
;
QuoteDone:	xor	al, al
		call	ArgPushChar		; push terminating null
		inc	dx			; bump arg count
		jmp	SHORT NewArg		; go get more

;------------------------------------------------------------------------------
;
; Here when done expanding command line. Go build the argv array.
;
ArgCopyDone:	mov	ax, di			; ax = unused space
		sub	ax, wild_buff_max
		jz	ArgNoWaste		; skip if all used
		push	dx
		push	di
ifndef	__HUGE__
		mov	ds, savedDS
endif
		push	ax
		call	sbrk@			; release unused memory
		pop	cx			; toss parameter
		pop	di
		pop	dx
ArgNoWaste:	lds	si, dword ptr wild_buff_addr
		mov	cx, di
		sub	cx, si			; cx = number of bytes in expanded line
		inc	dx			; count program name
		jmp	BuildArgv

;------------------------------------------------------------------------------
;
; Routine to retrieve the next character from the command line.
;	Sets CF when end of line reached.
;	Sets ZF when \ character found (i.e. \")
;
;	bh.bit0 set if wildcard chars found (* or ?)
;	bh.bit1 set if \ character found (\")
;
GetChar		proc	near

		jcxz	GchEnd			; jump if no more
		lodsb
		dec	cx
		cmp	al, '\'			; escape ?
		je	GchEsc
		cmp	al, '?'
		je	GchWild
		cmp	al, '*'
		je	GchWild
GchRet:		or	ah, 1			; clear CF and ZF
		ret
GchWild:	test	bh, bh
		jnz	GchRet			; give up if \" has been found
		or	bh, 1
		ret
GchEsc:		jcxz	GchRet			; check for \ at end of line
		cmp	byte ptr [si],'"'
		jne	GchRet			; only \" is special
		lodsb
		dec	cx
		mov	bh, 2			; set \ flag
		xor	ah, ah			; clear CF, set ZF
		ret
GchEnd:		stc
		ret

GetChar		endp

;------------------------------------------------------------------------------
;
; Routine to expand a wildcard parameter.
;
;	DS:SI	=	argument address
;	ES:DI	=	destination
; Returns:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久一区二区三区四区| 日韩精品乱码免费| 婷婷开心激情综合| 国产福利一区二区三区在线视频| 日本高清无吗v一区| 国产日韩精品久久久| 免费成人av在线播放| 色av成人天堂桃色av| 国产午夜亚洲精品不卡| 日韩av电影免费观看高清完整版在线观看| aaa欧美大片| 久久精品视频在线免费观看| 另类小说综合欧美亚洲| 欧美体内she精视频| 亚洲精品v日韩精品| 99精品久久只有精品| 中文字幕免费不卡| 国产福利精品导航| 精品欧美黑人一区二区三区| 男男视频亚洲欧美| 欧美二区三区91| 亚洲不卡在线观看| 欧美日韩成人在线| 午夜在线成人av| 欧美精品久久久久久久多人混战 | 另类小说视频一区二区| 欧美理论电影在线| 日韩成人av影视| 欧美精品高清视频| 日韩国产精品久久久久久亚洲| 欧美中文一区二区三区| 亚洲国产wwwccc36天堂| 欧美色网一区二区| 天天影视色香欲综合网老头| 欧美一区二区视频网站| 久久精品国产亚洲5555| 久久免费电影网| 成人激情图片网| 亚洲青青青在线视频| 91国内精品野花午夜精品| 亚洲成人av中文| 欧美一级黄色片| 国产精品一区二区视频| 欧美国产丝袜视频| 色综合亚洲欧洲| 午夜电影网亚洲视频| 日韩欧美国产综合| 国产成人8x视频一区二区| 中文字幕一区二区三区四区不卡 | 91精品欧美一区二区三区综合在| 日本午夜一本久久久综合| 欧美精品一区二区三区四区 | 高清免费成人av| 亚洲伦理在线免费看| 欧美日韩视频在线观看一区二区三区 | 国产成人精品三级| 亚洲精品网站在线观看| 7777精品伊人久久久大香线蕉 | 天天操天天色综合| 久久久噜噜噜久久中文字幕色伊伊| 不卡欧美aaaaa| 亚洲第一电影网| 国产亚洲欧美中文| 欧美三级视频在线观看| 国产传媒久久文化传媒| 亚洲黄色av一区| 精品国产乱码久久久久久浪潮| 波多野结衣中文一区| 日韩高清欧美激情| 国产精品美女久久久久久2018| 欧美日本韩国一区二区三区视频| 韩国精品免费视频| 曰韩精品一区二区| 久久精品亚洲精品国产欧美 | 国产精品美女久久久久aⅴ国产馆| 欧美亚洲丝袜传媒另类| 国产伦精品一区二区三区免费迷 | 亚洲一区二区三区小说| 久久久久久久综合| 91精品国产综合久久久久久漫画| 成人动漫av在线| 麻豆成人av在线| 一区二区三区四区在线免费观看| 久久婷婷色综合| 欧美日韩国产首页| 色伊人久久综合中文字幕| 国产成人高清在线| 久久国产精品区| 激情国产一区二区| 亚洲综合一区在线| 国产精品久久久久永久免费观看 | 香港成人在线视频| 日韩码欧中文字| 中文字幕av不卡| 一区二区免费在线| 国产精品乱人伦| 日本一区二区成人| 久久久久久毛片| 精品盗摄一区二区三区| 日韩女优毛片在线| 日韩一区二区中文字幕| 欧美另类z0zxhd电影| 欧美日本在线播放| 欧美日韩一区二区三区在线看| 91蜜桃在线免费视频| 成人av免费网站| av色综合久久天堂av综合| 成人免费毛片嘿嘿连载视频| 国产高清在线精品| 成人黄色在线网站| 波多野洁衣一区| 91麻豆福利精品推荐| 91福利视频久久久久| 欧美日韩中文字幕一区二区| 在线观看日韩一区| 欧美久久一二三四区| 日韩视频永久免费| 精品久久人人做人人爰| 久久精品免视看| 国产精品电影一区二区| 一区二区三区欧美视频| 一区二区三区中文字幕电影 | 3d动漫精品啪啪一区二区竹菊| 欧美在线一区二区三区| 日本道色综合久久| 欧美日韩综合在线| 欧美v国产在线一区二区三区| wwwwww.欧美系列| 国产精品网友自拍| 亚洲综合一区二区三区| 日韩中文字幕1| 国产精品911| 日本韩国精品在线| 日韩女同互慰一区二区| 亚洲色图在线播放| 一区二区欧美国产| 久久www免费人成看片高清| 精品一二三四区| 成人app在线| 欧美日韩免费不卡视频一区二区三区| 69堂成人精品免费视频| 久久久久久久久97黄色工厂| 最新成人av在线| 日韩成人伦理电影在线观看| 高清成人在线观看| 欧美视频三区在线播放| 日韩免费观看高清完整版| 亚洲欧洲日产国产综合网| 婷婷中文字幕一区三区| 国产成人aaa| 欧美日韩国产精选| 欧美国产在线观看| 日本欧美在线观看| 国产99精品在线观看| 欧美精品123区| 国产精品久久久久一区二区三区| 亚洲午夜激情网页| 高清久久久久久| 欧美成人猛片aaaaaaa| 亚洲精品中文在线影院| 韩国v欧美v亚洲v日本v| 欧美群妇大交群的观看方式| 国产精品久久久久永久免费观看| 蜜桃av噜噜一区| 欧美亚洲综合另类| 国产精品福利一区二区| 国模一区二区三区白浆| 在线观看亚洲精品视频| 一区在线中文字幕| 成人黄色av电影| 日韩一级高清毛片| 亚洲影院免费观看| 成人av小说网| 久久无码av三级| 日本不卡一二三区黄网| 日本道在线观看一区二区| 国产精品国产三级国产普通话99| 久久99日本精品| 欧美一区二区三区视频免费| 亚洲自拍欧美精品| 色呦呦国产精品| 中文字幕佐山爱一区二区免费| 国产成人免费xxxxxxxx| 久久夜色精品国产欧美乱极品| 秋霞午夜av一区二区三区| 欧美美女黄视频| 午夜久久电影网| 欧美高清dvd| 日本一不卡视频| 欧美一区二区三区视频在线| 丝袜亚洲另类欧美| 欧美人牲a欧美精品| 亚洲成人激情自拍| 欧美日韩久久一区| 午夜欧美大尺度福利影院在线看| 欧美性xxxxx极品少妇| 一区2区3区在线看| 精品视频免费看| 午夜久久福利影院| 一区二区三区成人|