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

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

?? pointers.inc

?? Dos6.0
?? INC
字號:
;***
;pointers.inc - 30-Dec-87 - pointer reference macros
;***
	.XLIST
;***
;
;	Copyright <C> 1987, Microsoft Corporation
;
;Purpose:
;	To provide a set of macros for pointer reference whether they are
;	NEAR (1-word) or FAR (2-word).	FAR pointers may also have an SB
;	index instead of a true physical segment.
;
;	NOTE: This is a SHARED INCLUDE FILE, used by both the RUNTIME and
;	NOTE: the interpreter projects.  Any changes made to one should
;	NOTE: be carried over (COPIED) to the other!!!
;
;******************************************************************************

POINTERS_INC = -1   ;needed by QBI sources which also include this file.

;FV_SBPTR determines the type of 2-word pointers used in manipulating
;Far Heap and some Near Heap accesses.	When OFF, these pointers contain
;an actual physical segment.  When ON, they contain an SB (Segment Base)
;which is an index to a table containing the actual physical segment.
;The following MACRO's attempt to hide these differences.

;[2]FV_SBSWAP is ON if an SB can be swapped out of active memory.  (Swapped
;[2]to disk or out of active EMM.)

;***
;GETSB_SEG - macro to get an SB's physical segment
;
;Purpose:
;	Added with [2].
;	This macro allows us to access the physical segment of an SB.
;Entry:
;	dest -	register in which the SB physical segment is to be placed
;	srce -	the SB index
;	temp -	a temporary register is required and should be used only when:
;		    SPEED, NOLOAD, (NOT FIXED) temp must be index reg
;		    SPEED, LOAD,   (NOT FIXED) temp must be index reg != dest
;		    SPEED, LOAD,   FIXED
;		    SIZE,  NOLOAD, FIXED
;		    SIZE,  LOAD,   FIXED
;	opt  -	any combination of the following options:
;		    SIZE to optimize macro code for size
;		    SPEED to optimize macro code for speed (default)
;		    LOAD tests for and reloads non-resident blocks
;		    NOLOAD no test or reload (default)
;		    FIXED if 'srce' is a fixed SB constant
;			(FIXED is also implied if srce is a constant)
;		    NOFLUSH to prohibit the flushing of all EMM blocks in
;			non-release versions
;		    FLUSH to cause EMM flushing (default)
;
;Exit:
;	register 'dest' contains the SB physical segment of 'srce'.
;Notes:
;	ES and DS are always preserved (when != dest) for SPEED and NOLOAD.
;	ES and DS are preserved (when != dest) for SIZE or LOAD if:
;	    -- it is psCur, or
;	    -- it is locked, or
;	    -- it is not-EMM and (non-swappable OR non-discardable)
;	When a desired option is important it should be specified rather
;	    than defaulted so that the defaults may be changed.
;Examples:
;	GETSB_SEG   es,[grs.GRS_sbVar],,<SIZE,LOAD>
;	GETSB_SEG   ds,bx,bx,<SPEED,NOLOAD>
;
;**************************************************************************
GETSB_SEG   MACRO   dest,srce,temp,opt
	LOCAL	NoReload
	?sz = 0 			;;default SPEED (not SIZE)
	?ld = 0 			;;default NOLOAD (not LOAD)
	?fx = 0 			;;default not FIXED
	?fl = 1 			;;[8]default FLUSH

	irp x,<opt>
	  ifidni <x>,<SIZE>		;;if SIZE,
	    ?sz=1			;;  set size flag
	  elseifidni <x>,<SPEED>	;;if SPEED,
	    ?sz=0			;;  clr size flag
	  elseifidni <x>,<LOAD> 	;;if LOAD,
	    ?ld=1			;;  set load flag
	  elseifidni <x>,<NOLOAD>	;;if NOLOAD
	    ?ld=0			;;  clr load flag
	  elseifidni <x>,<FIXED>	;;if FIXED
	    ?fx=1			;;  set fixed flag
	  elseifidni <x>,<FLUSH>	;;[8]if FLUSH
	    ?fl=1			;;  [8]set flush flag
	  elseifidni <x>,<NOFLUSH>	;;[8]if NOFLUSH
	    ?fl=0			;;  [8]clr flush flag
	  else
	    if1
	      %out invalid GETSB_SEG option: &x
	    endif
	    .err ;invalid GETSB_SEG option
	  endif
	endm

	?sz = 0 			;;  always SPEED
	?ld = 0 			;;  and NOLOAD
	?fl = 0 			;;[10]and NOFLUSH

	?fl = 0 			;;[10]NOFLUSH in RELEASE versions

if (.type srce) and 04H 		;;if srce is a constant
	?fx = 1 			;;  must be a FIXED SB
endif

if ?sz AND ?fx AND NOT ?ld		;;SIZE & FIXED & !LOAD is actually
	?sz = 0 			;;  smaller as !SIZE
endif

if ?sz					;;SIZE
  if ?fx				;;  FIXED
	mov	temp,srce		;;    can't push constant
	push	temp
  else					;;  not FIXED
	push	srce			;;    sb arg to call on stack
  endif

  if ?fl				;;[10]if EMM flushing desired
      % extrn	Flush_&&?segname:near	;;  [9]then do it
      % call	Flush_&&?segname	;;  [9]
  endif 				;;[9]
      % extrn	DerefSb_&&?segname:near ;;    [10]
      % call	DerefSb_&&?segname	;;    [10]top of stack = phys seg
	pop	dest			;;    [10]dest = phys seg
else					;;SPEED version
  if ?fx				;;  FIXED

    if ?fl				;;[10]if EMM flushing desired
      % extrn	Flush_&&?segname:near	;;  [9]then do it
      % call	Flush_&&?segname	;;  [9]
    endif				;;[9]

	mov	dest,mpsbps[srce*2]	;;    fetch seg direct from sb table
  else					;;  not FIXED
    ifdifi  <temp>,<srce>		;;    if temp != srce
	mov	temp,srce		;;	temp = srce  (SB)
    endif

    if ?fl				;;[10]if EMM flushing desired
      % extrn	Flush_&&?segname:near	;;  [9]then do it
      % call	Flush_&&?segname	;;  [9]
    endif				;;[9]

	shl	temp,1			;;    shift to make it a table index
	mov	dest,mpsbps[temp]	;;    fetch seg from sb table
  endif
  if ?ld				;;  LOAD
    ifidni  <dest>,<ds> 		;;    [8]if dest == ds
	?over	EQU <BYTE PTR SS>	;;    [8]  force SS override to DGROUP
    else				;;    [8]else
	?over	EQU <BYTE PTR DGROUP>	;;    [8]  insure DGROUP
    endif				;;    [8]
    if ?fx				;;    [4]
	test	?over:mpsbps[srce*2],1	;;    [8]test for resident segment
    else				;;    [4]
	test	?over:mpsbps[temp],1	;;    [8]test for resident segment
      ifidni <dest>,<temp>		;;    [10]temp must be != dest here
	if1				;;    [10]
	  %out temp == dest not allowed here;;[10]
	endif				;;    [10]
	.err ;temp == dest not allowed here   [10]
      endif				;;    [10]
    endif				;;    [4]
	jnz	NoReload		;;    [4]skip reload if resident
    if ?fx
	mov	temp,srce		;;    [10]
    else				;;    [10]
	shr	temp,1			;;    [10]restore SB index
    endif
	push	temp			;;    [4]
      % extrn	DerefSb_&&?segname:near ;;    [10]
      % call	DerefSb_&&?segname	;;    [10]top of stack = phys seg
	pop	dest			;;    [10]dest = phys seg

NoReload:				;;    [6]
  endif   ;;LOAD
endif	;;SIZE/SPEED
	ENDM


DGROUPSEG   EQU <SS>	;DGROUP is in SS


;***
;GETSEG - macro to access the physical segment of a far heap descriptor.
;
;Purpose:
;	Rewritten with [2].
;	This macro allows us to access the segment of a far heap descriptor
;	in different ways, depending on our far heap code support scheme.
;Entry:
;	see GETSB_SEG.
;Exit:
;	register 'dest' contains the physical segment address.
;
;**************************************************************************
GETSEG	MACRO	dest,srce,temp,opt

	mov	dest,srce		;;fetch seg address directly
	ENDM

;***
;GETPTR - macro for FAR/HUGE pointer reference
;
;Purpose:
;	Rewritten with [2].
;
;	This macro allows us to use a pointer whether it be FAR (with actual
;	physical segment) or HUGE (with an SB segment).
;	HUGE pointers are used when FV_SBPTR is on.
;
;	The result will always be a FAR pointer (with actual physical segment)
;	in a register pair.
;
;Entry:
;	alias - the name to use for subsequent pointer reference.
;	seg   - register to receive the physical segment.
;		seg must be a segment register to use alias.
;	reg   - register to receive the address offset of the pointer.
;		reg must be an index register to use alias.
;	srce  - source of the pointer.  Must be defined with parmDP or localDP.
;	temp  - the temporary register to use for dereferencing the SB.
;		If not provided, reg will be used (see GETSEG).
;	opt   - see GETSB_SEG.
;Exit:
;	seg:[reg] - contains the physical pointer
;	alias	  - is a name (equated to seg:[reg]) to use when referencing
;		    the pointer, so long as seg and reg remain undisturbed.
;**************************************************************************
GETPTR	MACRO alias,seg,reg,srce,temp,opt
ifnb	<alias>
alias	equ	seg:[reg]		;;  set up alias
endif
  ifidni <seg>,<es>
	les	reg,srce		;;  optimize segreg ES load wo/SB
  elseifidni <seg>,<ds>
	lds	reg,srce		;;  optimize segreg DS load wo/SB
  else
	mov	seg,SEG_&srce		;;  load seg (not a segreg)
	mov	reg,OFF_&srce		;;  and get offset
  endif
	ENDM

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美不卡在线视频| 国产九九视频一区二区三区| 一本到一区二区三区| ...av二区三区久久精品| 97久久超碰国产精品| 亚洲精品自拍动漫在线| 欧美三级乱人伦电影| 亚洲成人动漫在线免费观看| 69成人精品免费视频| 久久精品av麻豆的观看方式| 久久久99精品免费观看不卡| 成人a免费在线看| 亚洲综合丝袜美腿| 欧美一区二区三区在线观看视频| 久久99精品国产91久久来源| 欧美国产精品一区| 在线一区二区三区四区五区 | 99re成人在线| 亚洲第一精品在线| 久久午夜国产精品| 97久久精品人人爽人人爽蜜臀| 亚洲成人免费在线| 精品久久久久久久久久久久久久久久久 | 色先锋资源久久综合| 偷窥少妇高潮呻吟av久久免费| 日韩亚洲电影在线| 成人av片在线观看| 午夜免费久久看| 国产午夜精品久久久久久久| 91激情五月电影| 国产综合色视频| 一区二区三区av电影| 日韩欧美电影在线| 色婷婷国产精品久久包臀| 青青草97国产精品免费观看| 国产精品毛片高清在线完整版| 欧美理论片在线| aa级大片欧美| 精品一区二区免费| 一区二区高清免费观看影视大全| 欧美不卡视频一区| 欧美亚洲动漫制服丝袜| 国产精品亚洲一区二区三区妖精| 亚洲一区二区视频在线观看| 欧美国产激情二区三区| 欧美高清一级片在线| 97久久人人超碰| 国产精品一区不卡| 日韩国产高清影视| 亚洲自拍偷拍九九九| 久久久99久久| 欧美成人a在线| 7777精品伊人久久久大香线蕉| 成人国产精品免费观看视频| 精品无人区卡一卡二卡三乱码免费卡 | 亚洲3atv精品一区二区三区| 中文字幕在线一区二区三区| 精品国产髙清在线看国产毛片 | 欧美探花视频资源| av男人天堂一区| 经典一区二区三区| 日本麻豆一区二区三区视频| 亚洲综合免费观看高清完整版在线 | 欧美三级电影在线看| 91视频91自| 成人avav在线| 国产91高潮流白浆在线麻豆 | 日韩欧美一级在线播放| 欧美日韩一卡二卡| 91美女精品福利| 99精品视频一区二区| 国产成人啪免费观看软件| 激情五月播播久久久精品| 蜜臀精品久久久久久蜜臀| 天天色天天爱天天射综合| 亚洲第一搞黄网站| 五月婷婷另类国产| 图片区小说区区亚洲影院| 亚洲国产欧美日韩另类综合| 亚洲精品国产视频| 亚洲一区二区三区四区五区黄 | 一片黄亚洲嫩模| 亚洲资源中文字幕| 亚洲超丰满肉感bbw| 午夜精品久久久久久久 | 奇米一区二区三区av| 日本午夜精品视频在线观看| 青青草97国产精品免费观看 | 一区二区三区中文字幕电影| 亚洲精品久久久蜜桃| 亚洲18影院在线观看| 免费人成精品欧美精品| 蜜臀av一区二区| 国产精品99久久久| 成人av综合在线| 99精品视频一区| 欧美日韩久久不卡| 欧美成人高清电影在线| 国产欧美日韩亚州综合 | 久久成人免费日本黄色| 国产资源在线一区| 成人网在线播放| 在线一区二区视频| 日韩欧美国产三级电影视频| 久久毛片高清国产| 亚洲乱码国产乱码精品精可以看 | 欧美精品高清视频| 欧美大度的电影原声| 国产三级欧美三级| 亚洲精品国产高清久久伦理二区| 亚洲 欧美综合在线网络| 韩国av一区二区三区四区| av网站免费线看精品| 在线电影一区二区三区| 国产性色一区二区| 亚洲成a人片在线观看中文| 久久99久久精品| 91免费精品国自产拍在线不卡 | 欧美一区二区精品久久911| 国产人妖乱国产精品人妖| 亚洲尤物在线视频观看| 韩国成人精品a∨在线观看| 日本大香伊一区二区三区| 日韩三级视频中文字幕| 亚洲欧洲另类国产综合| 日本不卡一二三区黄网| 91影院在线观看| 欧美成人精精品一区二区频| 亚洲蜜臀av乱码久久精品蜜桃| 蜜臀精品久久久久久蜜臀| 91免费观看视频在线| 国产三级欧美三级日产三级99| 亚洲成a人在线观看| 不卡av在线网| www国产亚洲精品久久麻豆| 亚洲成人手机在线| 91原创在线视频| 久久久久国产一区二区三区四区| 午夜一区二区三区视频| 波多野结衣91| 久久久影视传媒| 日韩高清欧美激情| 日本高清不卡一区| 国产精品久久免费看| 国产成人免费xxxxxxxx| 日韩一卡二卡三卡| 亚洲国产你懂的| 91久久精品国产91性色tv| 国产精品福利一区| 国产成人在线影院| 久久久www免费人成精品| 天堂久久一区二区三区| 在线观看一区二区精品视频| 国产精品进线69影院| 国产99久久久国产精品潘金| 欧美精品一区二区在线观看| 日本视频在线一区| 欧美一级专区免费大片| 婷婷国产v国产偷v亚洲高清| 欧美在线一区二区三区| 一区二区三区久久久| 99国产精品国产精品毛片| 国产精品久线在线观看| 粉嫩av一区二区三区粉嫩| 国产三级久久久| 国产99精品国产| 欧美激情自拍偷拍| 99在线精品一区二区三区| 中日韩av电影| a4yy欧美一区二区三区| 综合激情成人伊人| 91免费版在线| 亚洲尤物在线视频观看| 欧美色图免费看| 亚欧色一区w666天堂| 91精品免费观看| 麻豆一区二区在线| 26uuu亚洲综合色| 国产成人精品在线看| 国产精品国产三级国产普通话99| 不卡的电影网站| 一区二区三区国产精华| 欧美巨大另类极品videosbest | 色综合网色综合| 一区二区三区加勒比av| 欧美日韩国产综合草草| 偷拍亚洲欧洲综合| 久久综合九色综合欧美就去吻| 国产福利不卡视频| 亚洲欧美日韩国产另类专区| 在线一区二区视频| 蜜桃av一区二区| 国产精品网站在线观看| 色婷婷国产精品| 另类欧美日韩国产在线| 国产日韩在线不卡| 日本乱人伦aⅴ精品| 日本不卡视频在线| 中文字幕精品一区二区精品绿巨人 | 日韩美女视频19|