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

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

?? exaid.asm

?? Dos6.0
?? ASM
?? 第 1 頁 / 共 3 頁
字號:
page	49,132
	TITLE	exAId	-	Array Id Executors
;***
;exaid.asm - executors for simple id references.
;
;	Copyright <C> 1986, Microsoft Corporation
;
;Purpose:
;	This module contains all exAId executors and all exAVtRf executors.
;
;	In general, these executors are very speed critical.
;
;
;****************************************************************************

	.xlist
	include 	version.inc
	IncludeOnce	architec
	IncludeOnce	array
	IncludeOnce	context
	IncludeOnce	executor
	IncludeOnce	exint
	IncludeOnce	extort
	IncludeOnce	opid
	IncludeOnce	pcode		
	IncludeOnce	qbimsgs
	IncludeOnce	rtinterp
	IncludeOnce	variable
	.list


assumes cs, CODE
assumes es, NOTHING
assumes ss, DATA


sBegin	CODE

	subttl	I2 Load Executors
	page
	;Indirect

MakeExe exAIdIILd2,opAIdLd,ET_Imp
	SkipExHeader
MakeExe exAIdEILdI2,opAIdLd,ET_I2
	LODSWTX 			;Index argument count
	xchg	ax,cx
	LODSWTX 			;oVar
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	GetpFrame
	mov	bx,[pFrame]		;ds:bx = pointer to array descriptor
	cmp	cl,[bx].AD_cDims	;Correct number of indices?
	jz	ALdI2
	jmp	IndexCountErr
	
;Common
MakeExe exAIdECLdI2,opAIdLd,ET_I2
	SkipExHeader
MakeExe exAIdICLd2,opAIdLd,ET_Imp
	LODSWTX 			;Load argument count
	xchg	ax,cx
	LODSWTX				;Get oVar
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	mov	dx,[pVarBx].ACOM_oValue		;Offset into common block
	test	byte ptr [pVarBx-VAR_value].VAR_fStat,FV_STATIC 
						;Is the array $STATIC?
	mov	bx,[pVarBx].ACOM_oCommon	;oCommon
	jz	@F
	add	bx,COM_bdType - COM_bdValue	;Adjust to point to type table
@@:
	add	bx,[grs.GRS_bdtComBlk.BD_pb]	;pCommon
	mov	bx,[bx].COM_bdValue.BD_pb	;Common block
	add	bx,dx				;Offset in block
	jmp	short ALdI2

;Frame
MakeExe exAIdIFLd2,opAIdLd,ET_Imp
	SkipExHeader
MakeExe exAIdEFLdI2,opAIdLd,ET_I2
	LODSWTX 			;Index argument count
	xchg	ax,cx
	LODSWTX 			;oVar
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	mov	bx,[pVarBx+AFRAME_oFrame]
	add	bx,bp			;ss:bx = pointer to array descriptor
	jmp	short ALdI2

	;Public


	;Static

MakeExe exAIdESLdI2,opAIdLd,ET_I2
	SkipExHeader
MakeExe exAIdISLd2,opAIdLd,ET_Imp
	LODSWTX 			;Load argument count
	xchg	ax,cx
	LODSWTX 			;Load operand
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
ALdI2S: 				
	lea	bx,[pVarBx].ASTAT_ad	;ds:bx = array descriptor address
ALdI2:
	call	ResolveArray		;resolve to segment and offset in dx:bx
	GETSEG	ds,dx,di,<SPEED,LOAD>	; Move to array element segment
	push	[bx]			;Push the I2
	    mov     ax,ss
	    mov     ds,ax		;Restore the data segment
	DispMac

	;Optimized I2 load/store executors for 1 index

	;Frame load

MakeExe exA1IdIFLdI2,opAIdLd,ET_Imp
	SkipExHeader
MakeExe exA1IdEFLdI2,opAIdLd,ET_I2
	inc	si
	inc	si			;Skip cDims
	LODSWTX 			;oVar
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	mov	bx,[pVarBx+AFRAME_oFrame]
	add	bx,bp			;bx = pointer to array descriptor
	    mov     dx,ds		;Save psVariableTable
	jmp	short A1LdI2

	;Static load

MakeExe exA1IdESLdI2,opAIdLd,ET_I2
	SkipExHeader
MakeExe exA1IdISLdI2,opAIdLd,ET_Imp
	inc	si
	inc	si			;Skip count ot indices
	LODSWTX 			;Load operand
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	lea	bx,[pVarBx].ASTAT_ad	;ds:bx = array descriptor address
	    mov     dx,ds		;Save psVariableTable
A1LdI2:
	mov	cx,[bx].AD_fhd.FHD_hData
	jcxz	RangeErr		; Brif array not allocated
	pop	ax			;Get index
	sub	ax,[bx].AD_tDM.DM_iLbound	;Subtract lower bound
	jl	RangeErr
	cmp	ax,[bx].AD_tDM.DM_cElements	;Test for range
	jge	RangeErr
	shl	ax,1
	add	ax,[bx].AD_fhd.FHD_oData ;Add base offset
	GETSEG	ds,cx,bx,<SPEED,LOAD>	; Move to array element segment
	xchg	bx,ax
	push	[bx]			;Push the I2
	    mov     ds,dx		;Restore module var table
	DispMac

IndexCountErr:
RangeErr:
	mov	al,ER_SOR		;Subscript out of range
	call	RtErrorCODE		;generate error, don't return

	;Frame store

MakeExe exA1IdIFStI2,opAIdSt,ET_Imp
	SkipExHeader
MakeExe exA1IdEFStI2,opAIdSt,ET_I2
	inc	si
	inc	si			;Skip count ot indices
	LODSWTX 			;oVar
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	mov	bx,[pVarBx+AFRAME_oFrame]
	add	bx,bp			;bx = pointer to array descriptor
	    mov     dx,ds		;Save psVariableTable
	jmp	short A1StI2

	;Static store

MakeExe exA1IdESStI2,opAIdSt,ET_I2
	SkipExHeader
MakeExe exA1IdISStI2,opAIdSt,ET_Imp
	inc	si
	inc	si			;Skip count ot indices
	LODSWTX 			;Load operand
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	lea	bx,[pVarBx].ASTAT_ad	;ds:bx = array descriptor address
	    mov     dx,ds		;Save psVariableTable
A1StI2:
	mov	cx,[bx].AD_fhd.FHD_hData
	jcxz	RangeErr		; Brif array not allocated
	pop	ax			;Get index
	sub	ax,[bx].AD_tDM.DM_iLbound	;Subtract lower bound
	jl	RangeErr
	cmp	ax,[bx].AD_tDM.DM_cElements	;Test for range
	jge	RangeErr
	shl	ax,1
	add	ax,[bx].AD_fhd.FHD_oData ;Add base offset
	GETSEG	ds,cx,bx,<SPEED,LOAD>	; Move to array element segment
	xchg	bx,ax
	pop	[bx]			;Store the I2
	    mov     ds,dx		;Restore module var table
	DispMac 			; and dispatch next executor


	subttl	I2 Store Executors
	page
	;Common

MakeExe exAIdICSt2,opAIdSt,ET_Imp
	SkipExHeader
MakeExe exAIdECStI2,opAIdSt,ET_I2
	LODSWTX 			;Load argument count
	xchg	ax,cx
	LODSWTX				;Get oVar
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	mov	dx,[pVarBx].ACOM_oValue		;Offset into common block
	test	byte ptr [pVarBx-VAR_value].VAR_fStat,FV_STATIC 
						;Is the array $STATIC?
	mov	bx,[pVarBx].ACOM_oCommon	;oCommon
	jz	@F
	add	bx,COM_bdType - COM_bdValue	;Adjust to point to type table
@@:

	add	bx,[grs.GRS_bdtComBlk.BD_pb]	;pCommon
	mov	bx,[bx].COM_bdValue.BD_pb	;Common block
	add	bx,dx				;Offset in block
	jmp	short AStI2

;Indirect
MakeExe exAIdIISt2,opAIdSt,ET_Imp
	SkipExHeader
MakeExe exAIdEIStI2,opAIdSt,ET_I2
	LODSWTX 			;Index argument count
	xchg	ax,cx
	LODSWTX 			;oVar
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	GetpFrame
	mov	bx,[pFrame]		;bx = pointer to array descriptor
	cmp	cl,[bx].AD_cDims	;Correct number of indices?
	jz	AStI2
	jmp	IndexCountErr

;Frame
MakeExe exAIdEFStI2,opAIdSt,ET_I2
	SkipExHeader
MakeExe exAIdIFSt2,opAIdSt,ET_Imp
	LODSWTX 			;Index argument count
	xchg	ax,cx
	LODSWTX 			;oVar
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	mov	bx,[pVarBx+AFRAME_oFrame]
	add	bx,bp			;bx = pointer to array descriptor
	jmp	short AStI2

	;Public


	;Static

MakeExe exAIdESStI2,opAIdSt,ET_I2
	SkipExHeader
MakeExe exAIdISSt2,opAIdSt,ET_Imp
	LODSWTX 			;Load argument count
	xchg	ax,cx
	LODSWTX 			;Load operand
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
AStI2S: 				
	lea	bx,[pVarBx].ASTAT_ad	; ds:bx = array descriptor address
AStI2:
	call	ResolveArray		;resolve to segment and offset in dx:bx
	GETSEG	ds,dx,di,<SPEED,LOAD>	; Move to array element segment
	pop	[bx]			;Pop the I2 to the variable value
	    mov     ax,ss
	    mov     ds,ax		;Restore the data segment
	DispMac

	subttl	I4 Load Executors
	page
	;Indirect

MakeExe exAIdEILdI4,opAIdLd,ET_I4
	SkipExHeader
MakeExe exAIdIILd4,opAIdLd,ET_Imp
	LODSWTX 			    ;Index argument count
	xchg	ax,cx
	LODSWTX 			    ;oVar
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	GetpFrame
	mov	bx,[pFrame]		    ;bx = pointer to array descriptor
	cmp	cl,[bx].AD_cDims	    ;Correct number of indices?
	jz	ALd4
	jmp	IndexCountErr

;Common
MakeExe exAIdECLdI4,opAIdLd,ET_I4
	SkipExHeader
MakeExe exAIdICLd4,opAIdLd,ET_Imp
	LODSWTX 			;Load argument count
	xchg	ax,cx
	LODSWTX				;Get oVar
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	mov	dx,[pVarBx].ACOM_oValue		;Offset into common block
	test	byte ptr [pVarBx-VAR_value].VAR_fStat,FV_STATIC 
						;Is the array $STATIC?
	mov	bx,[pVarBx].ACOM_oCommon	;oCommon
	jz	@F
	add	bx,COM_bdType - COM_bdValue	;Adjust to point to type table
@@:
	add	bx,[grs.GRS_bdtComBlk.BD_pb]	;pCommon
	mov	bx,[bx].COM_bdValue.BD_pb	;Common block
	add	bx,dx				;Offset in block
	jmp	short ALd4

;Frame
MakeExe exAIdEFLdI4,opAIdLd,ET_I4
	SkipExHeader
MakeExe exAIdIFLd4,opAIdLd,ET_Imp
	LODSWTX 			    ;Index argument count
	xchg	ax,cx
	LODSWTX 			    ;oVar
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	mov	bx,[pVarBx+AFRAME_oFrame]   
	add	bx,bp			    ;bx = pointer to array descriptor
	jmp	short ALd4

	;Public


;Static
MakeExe exAIdESLdI4,opAIdLd,ET_I4
	SkipExHeader
MakeExe exAIdISLd4,opAIdLd,ET_Imp
	LODSWTX 			;Index argument count
	xchg	ax,cx
	LODSWTX 			;Operand
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
ALd4S:
	lea	bx,[pVarBx].ASTAT_ad	; ds:bx = array descriptor address
ALd4:
	call	ResolveArray		;resolve to segment and offset in dx:bx
	GETSEG	ds,dx,di,<SPEED,LOAD>	; Move to array element segment
SLoad4X:
	push	[bx+2]			;Push second word
	push	[bx]			;Push first word
	    mov     ax,ss
	    mov     ds,ax		;Restore the data segment
	DispMac

;Added with [15]
subttl	R4 Load Executors
page

;Indirect
MakeExe exAIdEILdR4,opAIdLd,ET_R4
	SkipExHeader
MakeExe exAIdIILdR4,opAIdLd,ET_Imp
	LODSWTX 			    ;Index argument count
	xchg	ax,cx
	LODSWTX 			    ;oVar
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	GetpFrame
	mov	bx,[pFrame]		    ;bx = pointer to array descriptor
	cmp	cl,[bx].AD_cDims	    ;Correct number of indices?
	jz	ALdR4
	jmp	IndexCountErr

;Common
MakeExe exAIdECLdR4,opAIdLd,ET_R4
	SkipExHeader
MakeExe exAIdICLdR4,opAIdLd,ET_Imp
	LODSWTX 			;Load argument count
	xchg	ax,cx
	LODSWTX				;Get oVar
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	mov	dx,[pVarBx].ACOM_oValue		;Offset into common block
	test	byte ptr [pVarBx-VAR_value].VAR_fStat,FV_STATIC 
						;Is the array $STATIC?
	mov	bx,[pVarBx].ACOM_oCommon	;oCommon
	jz	@F
	add	bx,COM_bdType - COM_bdValue	;Adjust to point to type table
@@:
	add	bx,[grs.GRS_bdtComBlk.BD_pb]	;pCommon
	mov	bx,[bx].COM_bdValue.BD_pb	;Common block
	add	bx,dx				;Offset in block
	jmp	short ALdR4

;Frame
MakeExe exAIdEFLdR4,opAIdLd,ET_R4
	SkipExHeader
MakeExe exAIdIFLdR4,opAIdLd,ET_Imp
	LODSWTX 			    ;Index argument count
	xchg	ax,cx
	LODSWTX 			    ;oVar
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar
	mov	bx,[pVarBx+AFRAME_oFrame]   
	add	bx,bp			    ;bx = pointer to array descriptor
	jmp	short ALdR4

	;Public


;Static
MakeExe exAIdESLdR4,opAIdLd,ET_R4
	SkipExHeader
MakeExe exAIdISLdR4,opAIdLd,ET_Imp
	LODSWTX 			;Index argument count
	xchg	ax,cx
	LODSWTX 			;Operand
	xchg	ax,bx			; BX = oVar
	DbChk	oVar,bx 		; Check for valid oVar

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线porny国产在线看| 国产综合色产在线精品| 色噜噜夜夜夜综合网| 国产精品国模大尺度视频| 国产经典欧美精品| 亚洲欧美日韩系列| 欧美日韩国产高清一区二区三区| 日韩精品三区四区| 久久久综合精品| 99riav一区二区三区| 亚洲一区二区在线免费观看视频 | 大尺度一区二区| 亚洲欧美在线视频观看| 色综合天天综合在线视频| 亚洲一区在线观看免费观看电影高清| 欧美日韩一区三区| 激情伊人五月天久久综合| 国产精品国产三级国产普通话蜜臀| 91国产成人在线| 青青青伊人色综合久久| 久久精品亚洲乱码伦伦中文| 99re这里都是精品| 久久超碰97中文字幕| 日韩专区中文字幕一区二区| 久久尤物电影视频在线观看| 成年人国产精品| 日本最新不卡在线| 国产精品成人一区二区三区夜夜夜| 色伊人久久综合中文字幕| 久久精品免费看| 综合久久久久综合| 精品少妇一区二区三区在线视频| 92国产精品观看| 韩国精品在线观看| 亚洲一区二区免费视频| 国产欧美一区二区精品秋霞影院 | 亚洲午夜在线视频| 国产亚洲美州欧州综合国| 欧美日韩免费一区二区三区 | 日本精品一区二区三区高清| 老司机免费视频一区二区| 亚洲女人的天堂| 国产亚洲美州欧州综合国| 91麻豆精品国产无毒不卡在线观看| 粉嫩嫩av羞羞动漫久久久| 麻豆国产一区二区| 五月婷婷激情综合| 亚洲欧美日韩久久精品| 国产欧美精品一区aⅴ影院| 日韩欧美色综合网站| 欧洲另类一二三四区| www.成人在线| 国产在线一区二区| 日韩成人av影视| 午夜欧美大尺度福利影院在线看| 亚洲欧美自拍偷拍色图| 国产婷婷一区二区| 久久久久九九视频| 欧美成人福利视频| 欧美情侣在线播放| 欧美日韩一级视频| 欧美午夜片在线看| 色综合久久综合中文综合网| 成人黄色大片在线观看| 国产一区二区精品久久| 久久精品国产99国产| 福利一区在线观看| 国产一区二区三区黄视频 | 色狠狠色噜噜噜综合网| www.欧美日韩国产在线| 成人激情动漫在线观看| 成人精品一区二区三区中文字幕| 国产盗摄一区二区| 成人激情免费视频| heyzo一本久久综合| eeuss鲁一区二区三区| 国产99久久久国产精品潘金网站| 国产一区999| 国产美女精品一区二区三区| 韩国av一区二区三区在线观看| 久久精品国产99国产| 国内精品免费在线观看| 国产精品18久久久久久久网站| 国产精品一区二区在线观看网站| 国产麻豆午夜三级精品| 国产成人免费9x9x人网站视频| 国产经典欧美精品| 99免费精品在线观看| 在线视频一区二区三区| 欧美主播一区二区三区美女| 欧美男同性恋视频网站| 日韩欧美一二三| 久久精品人人做| 综合av第一页| 天堂va蜜桃一区二区三区漫画版| 久久精品久久精品| 国产成人精品一区二 | 色8久久人人97超碰香蕉987| 欧美在线观看视频一区二区| 777色狠狠一区二区三区| 欧美成人一区二区三区在线观看| 久久久久亚洲蜜桃| 亚洲精品大片www| 日本少妇一区二区| 东方aⅴ免费观看久久av| 色婷婷狠狠综合| 欧美一级视频精品观看| 国产精品久久毛片| 香蕉乱码成人久久天堂爱免费| 久久97超碰国产精品超碰| av一区二区久久| 日韩亚洲欧美一区二区三区| 亚洲国产精品ⅴa在线观看| 亚洲午夜激情av| 国产在线麻豆精品观看| 91久久精品一区二区二区| 91精品啪在线观看国产60岁| 欧美激情一区二区三区不卡| 亚洲在线观看免费视频| 国产美女精品人人做人人爽| 欧美主播一区二区三区美女| 国产视频亚洲色图| 日日夜夜精品视频天天综合网| 成人小视频在线| 91精品一区二区三区久久久久久| 国产精品二三区| 蜜臀av在线播放一区二区三区| 91亚洲精品久久久蜜桃网站| 精品国产乱码久久久久久图片 | 国产一区二区三区高清播放| 在线观看视频一区二区| 久久免费电影网| 天天影视色香欲综合网老头| 成人国产精品免费| 欧美不卡视频一区| 午夜成人在线视频| 色系网站成人免费| 日本一区二区在线不卡| 青青草视频一区| 欧美性色综合网| 亚洲品质自拍视频| 国产成人精品网址| 精品免费国产二区三区| 日韩精品视频网站| 欧美色爱综合网| 一区二区三区在线观看国产| 成人综合婷婷国产精品久久 | 日韩精品一区二区三区蜜臀| 亚洲线精品一区二区三区八戒| 成人av资源下载| 国产人成一区二区三区影院| 美女久久久精品| 欧美一区二区三区白人| 午夜精品福利久久久| 91高清视频免费看| 国产精品久久99| 99视频超级精品| 国产精品福利一区二区| 成人午夜免费av| 中文字幕一区二区三区四区| 粉嫩一区二区三区在线看| 国产日韩精品久久久| 国产成人av电影在线观看| 久久久www免费人成精品| 国产一区二区三区黄视频| 精品国产sm最大网站免费看| 麻豆精品视频在线观看免费| 欧美一卡二卡三卡四卡| 日韩和欧美一区二区三区| 制服丝袜中文字幕一区| 开心九九激情九九欧美日韩精美视频电影| 91精品国产色综合久久不卡蜜臀| 日本视频一区二区三区| 日韩欧美一区二区视频| 久久av老司机精品网站导航| 久久午夜免费电影| 成人自拍视频在线观看| 成人免费一区二区三区视频 | 国产黄色成人av| 国产精品福利一区| 欧美亚洲日本一区| 丝袜美腿亚洲色图| 欧美变态tickle挠乳网站| 国产很黄免费观看久久| 国产精品久久久久婷婷二区次| 91麻豆蜜桃一区二区三区| 一区二区三区四区在线免费观看| 欧美性做爰猛烈叫床潮| 免费在线一区观看| 日本一区二区综合亚洲| 在线观看中文字幕不卡| 蜜桃av一区二区三区电影| 欧美精品一区二区三区四区| 不卡在线观看av| 亚洲v日本v欧美v久久精品| 亚洲精品一区二区三区蜜桃下载 | 精品美女一区二区三区| 成人免费毛片片v| 亚洲成人动漫一区| 国产亚洲综合在线|