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

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

?? pointers.inc

?? 這是DOS系統的源代碼,匯編寫的,值得看看,對開發操作系統的人員有價值
?? 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一区二区三区免费野_久草精品视频
一本色道久久综合亚洲aⅴ蜜桃| 精品日韩99亚洲| 国产精品白丝在线| 东方欧美亚洲色图在线| 久久久99精品免费观看不卡| 久久精品国产免费| 91精品国产乱码久久蜜臀| 日本视频在线一区| 欧美激情一区二区三区不卡 | 欧美男女性生活在线直播观看| 欧美韩国日本一区| 懂色一区二区三区免费观看| 中文字幕免费一区| 色综合色综合色综合| 午夜精彩视频在线观看不卡| 欧美一区二区三区精品| 国产美女精品人人做人人爽| 日本一区二区综合亚洲| av动漫一区二区| 一区二区成人在线视频| 日韩久久免费av| 成人av在线一区二区三区| 亚洲一区国产视频| 欧美变态tickle挠乳网站| 国产激情偷乱视频一区二区三区| 亚洲欧洲成人av每日更新| 91精品国产91久久久久久一区二区 | 欧美三级电影一区| 国产激情91久久精品导航| 亚洲国产一二三| 国产精品久久久久久久久免费相片 | 一二三四社区欧美黄| 337p粉嫩大胆色噜噜噜噜亚洲| 在线精品视频免费播放| 暴力调教一区二区三区| 欧美日韩国产三级| heyzo一本久久综合| 国产精品综合网| 国内精品在线播放| 国产一区亚洲一区| 国产精品香蕉一区二区三区| 国产精品一区二区久久精品爱涩| 成人精品免费看| 欧美高清一级片在线观看| 精品国产髙清在线看国产毛片| 欧美丰满一区二区免费视频| 欧美在线小视频| 99久久精品一区| 91猫先生在线| 欧美日韩国产a| 日韩欧美电影一二三| 精品国产免费人成在线观看| 精品入口麻豆88视频| 久久综合国产精品| 国产亚洲成av人在线观看导航| 国产三级一区二区| 亚洲欧美色图小说| 日韩精品五月天| 国产一区二区三区精品视频| 成人免费高清视频| 色8久久人人97超碰香蕉987| 制服丝袜中文字幕一区| 久久久久久久久久久电影| 亚洲欧美综合另类在线卡通| 亚洲国产wwwccc36天堂| 国内精品伊人久久久久av一坑 | 日韩国产欧美在线播放| 国产精品亚洲а∨天堂免在线| 91麻豆精品在线观看| 欧美日韩一级黄| 国产精品久久影院| 视频一区二区国产| 欧美综合色免费| 国产亚洲成av人在线观看导航| 亚洲精品五月天| 国产成人在线电影| 制服.丝袜.亚洲.另类.中文| 日韩码欧中文字| 国产裸体歌舞团一区二区| 在线看国产一区二区| 欧美国产精品中文字幕| 精品无人区卡一卡二卡三乱码免费卡| av网站免费线看精品| 国产亚洲综合在线| 秋霞影院一区二区| 欧美精品亚洲一区二区在线播放| 国产精品乱码久久久久久| 久久精品噜噜噜成人88aⅴ| 欧美亚洲综合一区| 亚洲欧洲综合另类在线| 成人精品免费网站| 国产精品久久久久久久久搜平片| 国产自产视频一区二区三区| 制服丝袜中文字幕一区| 日韩av在线发布| 91麻豆精品91久久久久同性| 免费观看在线色综合| 欧美人与禽zozo性伦| 一级做a爱片久久| 欧美日韩你懂的| 免费xxxx性欧美18vr| 日韩欧美另类在线| 成人性生交大片免费看中文网站| 国产亚洲视频系列| 成人免费av网站| 伊人夜夜躁av伊人久久| 欧美日韩卡一卡二| 国产一区二区成人久久免费影院 | 国产99一区视频免费| 亚洲国产精品成人综合色在线婷婷| 国产一区二区福利| 最新欧美精品一区二区三区| 色香蕉久久蜜桃| 日本aⅴ亚洲精品中文乱码| 精品国产91洋老外米糕| 99久久伊人网影院| 五月婷婷激情综合网| 久久网站最新地址| 欧美日韩日日摸| 成人中文字幕合集| 日韩中文字幕1| 国产精品国产三级国产普通话蜜臀| 色一情一乱一乱一91av| 国产专区欧美精品| 男女男精品网站| 国产精品久久久久久久久免费相片| 欧美性感一类影片在线播放| 国产麻豆91精品| 丝瓜av网站精品一区二区| 中文字幕色av一区二区三区| 日韩欧美电影在线| 7799精品视频| 日韩一区二区在线免费观看| 国产精品一品视频| 亚洲已满18点击进入久久| 51午夜精品国产| 91久久精品一区二区| 亚洲成人综合在线| 国产欧美日韩在线| 欧美一区二区三区小说| 色哟哟国产精品| 国产成人精品亚洲777人妖| 日本伊人午夜精品| 北条麻妃一区二区三区| 午夜一区二区三区在线观看| 国产精品毛片久久久久久久| 91福利在线导航| 国产不卡在线播放| 国产精品一二三区| 成人免费电影视频| av不卡免费在线观看| 成人免费av在线| 91久久奴性调教| 97se亚洲国产综合自在线不卡| 91视频精品在这里| 欧美日韩国产高清一区二区三区| 欧美日韩综合在线免费观看| 欧美三级韩国三级日本一级| 337p亚洲精品色噜噜| 国产日韩欧美a| 精品国产伦一区二区三区观看方式 | 午夜亚洲国产au精品一区二区| 亚洲资源在线观看| 亚洲 欧美综合在线网络| 午夜精品久久久久久久久| 精品一区二区在线免费观看| 成人高清视频在线| 91麻豆蜜桃一区二区三区| 欧美精品久久一区| 国产精品久久久久一区二区三区共| 亚洲在线观看免费| 国产精品中文字幕欧美| 成人午夜激情视频| 日韩一级黄色大片| 亚洲另类中文字| 国产成人免费网站| 欧美视频三区在线播放| 精品久久国产老人久久综合| 欧美激情一区三区| 日韩电影一二三区| 国产一区激情在线| 欧美一区二区网站| 一区二区三区小说| 精品无码三级在线观看视频| 91久久精品日日躁夜夜躁欧美| 精品99久久久久久| 日韩av不卡一区二区| 97精品电影院| 国产精品灌醉下药二区| 久久99精品国产.久久久久| 成人看片黄a免费看在线| 在线播放国产精品二区一二区四区 | 久久久久久97三级| 亚洲美女区一区| 91偷拍与自偷拍精品| 国产精品大尺度| 色婷婷久久一区二区三区麻豆| www精品美女久久久tv| 美腿丝袜亚洲一区| 色老头久久综合|