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

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

?? vesa.asm

?? 開放源碼的編譯器open watcom 1.6.0版的源代碼
?? ASM
字號:
; VESA module source code for Watcom C++.
; This module may also be used with CauseWay's assembly language
;  Flat model by directly calling InitVESA and RelVESA functions
;  at application startup and termination.

	.386
	.model small
	option oldstructs
	option proc:private

	include cw.inc

b	equ	byte ptr
w	equ	word ptr
d	equ	dword ptr
f	equ	fword ptr


;*******************************************************************************
;VESA detection return info structure.
;*******************************************************************************
VgaInfoBlock		struc
 VIB_VESASignature	db 'VESA'		;4 signature bytes
 VIB_VESAVersion	dw ?		;VESA version number
 VIB_OEMStringPtr	dd ?		;Pointer to OEM string
 VIB_Capabilities	db 4 dup (?)		;capabilities of the video environment
 VIB_VideoModePtr	dd ?		;pointer to supported Super VGA modes
 VIB_TotalMemory	dw ?		;memory size in units of 64K
VgaInfoBlock		ends


;*******************************************************************************
;VESA mode information return structure.
;*******************************************************************************
ModeInfoBlock struc
 ;mandatory information
 MIB_ModeAttributes	dw ?		;mode attributes
 MIB_WinAAttributes	db ?		;Window A attributes
 MIB_WinBAttributes	db ?		;Window B attributes
 MIB_WinGranularity	dw ?		;window granularity
 MIB_WinSize		dw ?		;window size
 MIB_WinASegment	dw ?		;Window A start segment
 MIB_WinBSegment	dw ?		;Window B start segment
 MIB_WinFuncPtr	dd ?		;pointer to window function
 MIB_BytesPerScanLine dw ?		;bytes per scan line
 ;optional information
 MIB_XResolution	dw ?		;horizontal resolution
 MIB_YResolution	dw ?		;vertical resolution
 MIB_XCharSize		db ?		;character cell width
 MIB_YCharSize		db ?		;character cell height
 MIB_NumberOfPlanes	db ?		;number of memory planes
 MIB_BitsPerPixel	db ?		;bits per pixel
 MIB_NumberOfBanks	db ?		;number of banks
 MIB_MemoryModel	db ?		;memory model type
 MIB_BankSize		db ?		;bank size in K
 ;later extensions
 MIB_NumberofImagePages	DB	?
 MIB_Reserved		DB	?
 MIB_RedMaskSize	DB	?
 MIB_RedFieldPosition	DB	?
 MIB_GreenMaskSize	DB	?
 MIB_GreenFieldPosition	DB	?
 MIB_BlueMaskSize	DB	?
 MIB_BlueFieldPosition	DB	?
 MIB_RsvdMaskSize	DB	?
 MIB_RsvdFieldPosition	DB	?
 MIB_DirectColorModeInfo	DB	?
ModeInfoBlock	ends


	.code


;*******************************************************************************
;Have a look for VESA INT 10h BIOS extension and if present install a patch to
;make protected mode access transparent. If VESA is enabled then some fields
;will be used as near 32-bit pointers rather than seg16:offset16. Not quite the
;same as straight VESA but more useful to other code. Even if VESA is not
;detected this code will still install its handler and cope with the
;installation check function. This ensures that the main code can still check
;for VESA without worrying about buffering.
;
;Usage: InitVESA();
;
;Returns:
;
;All registers preserved.
;
;*******************************************************************************
InitVESA	proc	near
	pushad
;
;Need a pointer to some DOS memory to use as a transfer buffer. Might as well
;use the general purpose extender buffer.
;
	mov	ah,51h
	int	21h		;get current PSP
	push	es
	mov	es,bx
	movzx	eax,es:w[EPSP_TransReal]	;pickup the transfer buffers
	pop	es		;address.
	shl	eax,4
	mov	TransferBuffer,eax
;
;Now see if VESA is present.
;
	mov	edi,offset Int10hBuffer
	mov	Real_EAX[edi],4f00h
	mov	eax,TransferBuffer
	shr	eax,4
	mov	Real_ES[edi],ax
	mov	Real_EDI[edi],0
	mov	bl,10h
	sys	IntXX
	mov	eax,Real_EAX[edi]
	cmp	ax,4fh
	jnz	@@0
	mov	edi,TransferBuffer
	cmp	d[edi],"ASEV"
	jnz	@@0
;
;VESA detected so flag it for later code.
;
	or	VESAPresent,-1
;
;Finally, we need to patch INT 10h so that we can intercept the VESA functions
;supported by this code.
;
@@0:	mov	bl,10h
	sys	GetVect
	mov	d[OldInt10h],edx
	mov	w[OldInt10h+4],cx
	mov	edx,offset Int10hHandler
	mov	cx,cs
	sys	SetVect
;
;Exit with all registers bar flags preserved.
;
	popad
	ret
InitVESA	endp


;*******************************************************************************
;Release VESA patch if installed. Can be called safely even if the InitVESA
;call was never made.
;
;Usage: RelVESA();
;
;Returns:
;
;ALL registers preserved.
;
;*******************************************************************************
RelVESA	proc	near
	pushad
;
;Check if INT 10h was patched.
;
	mov	cx,w[OldInt10h+4]
	or	cx,cx		;was int vector patched?
	jz	@@0
	mov	edx,d[OldInt10h]
	mov	bl,10h
	sys	SetVect
	mov	w[OldInt10h+4],0
;
@@0:	popad
	ret
RelVESA	endp


;*******************************************************************************
;This is the INT 10h VESA function intercept routine. It just checks the
;function number and if it's a VESA function that requires translation it calls
;the relevant routine. If VESA isn't present then the only valid function is the
;detection function (4F00h).
;*******************************************************************************
Int10hHandler	proc	near
;
;Check if it's a non-VESA mode set, disable bank switching if it is.
;
	or	ah,ah
	jnz	@@3
	push	eax
	push	ds
	mov	ax,DGROUP
	mov	ds,ax
	mov	BankFlags,0
	pop	ds
	pop	eax
	jmp	@@8
;
;Check if it's a VESA function.
;
@@3:	cmp	ah,4fh
	jnz	@@8
;
;Check if it's the detection function.
;
	or	al,al
	jnz	@@0
	push	ds
	push	es
	push	ax
	mov	ax,DGROUP
	mov	ds,ax
	mov	es,ax
	pop	ax
	call	VESA_00
	pop	es
	pop	ds
	jmp	@@9
;
;Check if VESA is present. If not then all other functions should be passed to
;the original handler.
;
@@0:	assume ds:nothing
	cmp	cs:VESAPresent,0
	assume ds:DGROUP
	jz	@@8
;
;Check if it's the mode info function.
;
	cmp	al,1
	jnz	@@1
	push	ds
	push	es
	push	ax
	mov	ax,DGROUP
	mov	ds,ax
	mov	es,ax
	pop	ax
	call	VESA_01
	pop	es
	pop	ds
	jmp	@@9
;
;Check if it's the set mode function.
;
@@1:	cmp	al,2
	jnz	@@2
	push	ds
	push	es
	push	ax
	mov	ax,DGROUP
	mov	ds,ax
	mov	es,ax
	pop	ax
	call	VESA_02
	pop	es
	pop	ds
	jmp	@@9
;
;Check if it's a state size/save/restore function.
;
@@2:	cmp	al,4
	jnz	@@8
	push	ds
	push	es
	push	ax
	mov	ax,DGROUP
	mov	ds,ax
	mov	es,ax
	pop	ax
	call	VESA_04
	pop	es
	pop	ds
	jmp	@@9
;
;Not a function that needs translation so pass control to original handler.
;
@@8:	assume ds:nothing
	jmp	cs:f[OldInt10h]
	assume ds:DGROUP
;
;Function has been dealt with so return results to caller.
;
@@9:	iretd
Int10hHandler	endp


;*******************************************************************************
;Get master info block. This function is supported even if there is no real VESA
;support so that the caller can still pass a protected mode memory pointer.
;*******************************************************************************
VESA_00	proc	near
	push	ebx
	push	ecx
	push	edx
	push	esi
	push	edi
;
;Better check if VESA is really supported. Forces detection to fail by returning
;EAX untouched if no VESA without passing down to real mode.
;
	cmp	VESAPresent,0
	jz	@@9
;
;Get real VESA function to fill our own buffer.
;
	push	edi
	mov	edi,offset Int10hBuffer
	mov	Real_EAX[edi],4f00h
	mov	eax,TransferBuffer
	shr	eax,4
	mov	Real_ES[edi],ax
	mov	Real_EDI[edi],0
	mov	bl,10h
	sys	IntXX
	mov	eax,Real_EAX[edi]
	movzx	eax,ax
	pop	edi
	cmp	eax,4fh
	jnz	@@9
;
;Copy data provided into user-supplied buffer.
;
	mov	esi,TransferBuffer
	mov	ecx,256/4
	cld
	push	edi
	rep	movsd
	pop	edi
;
;Set linear address of OEMStringPtr
;
	xor	edx,edx
	mov	dx,w[edi+2+VIB_OEMStringPtr]
	shl	edx,4
	xor	ecx,ecx
	mov	cx,w[edi+VIB_OEMStringPtr]
	add	edx,ecx
	mov	d[edi+VIB_OEMStringPtr],edx
;
;Set linear address of VideoModePtr
;
	xor	edx,edx
	mov	dx,w[edi+2+VIB_VideoModePtr]
	shl	edx,4
	xor	ecx,ecx
	mov	cx,w[edi+VIB_VideoModePtr]
	add	edx,ecx
	mov	d[edi+VIB_VideoModePtr],edx
;
@@9:	pop	edi
	pop	esi
	pop	edx
	pop	ecx
	pop	ebx
	ret
VESA_00	endp


;*******************************************************************************
;Get mode info block.
;*******************************************************************************
VESA_01	proc	near
	push	ebx
	push	ecx
	push	edx
	push	esi
	push	edi
;
;Get real VESA function to fill our own buffer.
;
	push	edi
	mov	edi,offset Int10hBuffer
	mov	Real_EAX[edi],4f01h
	mov	Real_ECX[edi],ecx
	mov	eax,TransferBuffer
	shr	eax,4
	mov	Real_ES[edi],ax
	mov	Real_EDI[edi],0
	mov	bl,10h
	sys	IntXX
	mov	eax,Real_EAX[edi]
	movzx	eax,ax
	pop	edi
;
;Check it was a supported mode we asked for info about.
;
	cmp	eax,4fh
	jnz	@@9
;
;Copy data provided into user-supplied buffer.
;
	push	ecx
	mov	esi,TransferBuffer
	mov	ecx,size ModeInfoBlock
	cld
	push	edi
	rep	movsb
	pop	edi
	pop	ecx
;
;Set linear address of WinFuncPtr
;
	mov	ebx,offset WinFuncHandler
	mov	d[edi+MIB_WinFuncPtr],ebx
;
;Check if details need forcing due to bad BIOS.
;
	push	eax
	mov	esi,offset Forced32kList
	mov	bx,15
@@32k:	lodsw
	cmp	ax,cx
	jz	@@Forced
	cmp	ax,-1
	jnz	@@32k
	mov	esi,offset Forced64kList
	inc	bx
@@64k:	lodsw
	cmp	ax,cx
	jz	@@Forced
	cmp	ax,-1
	jnz	@@64k
	movzx	bx,MIB_BitsPerPixel[edi]
@@Forced:	mov	MIB_BitsPerPixel[edi],bl
	pop	eax
;
@@9:	pop	edi
	pop	esi
	pop	edx
	pop	ecx
	pop	ebx
	ret
VESA_01	endp


;*******************************************************************************
;Set mode. Need to patch this so we can make sure the bank switch code address
;is kept up to date.
;*******************************************************************************
VESA_02	proc	near
	push	ebx
	push	ecx
	push	edx
	push	esi
	push	edi
;
;Disable bank switching incase this request fails.
;
	mov	BankFlags,0
;
;Get real VESA function to set the mode.
;
	mov	edi,offset Int10hBuffer
	mov	Real_EAX[edi],4f02h
	mov	Real_EBX[edi],ebx
	push	ebx
	mov	bl,10h
	sys	IntXX
	pop	ebx
	mov	eax,Real_EAX[edi]
	movzx	eax,ax
;
;Check it was a supported mode we asked for.
;
	cmp	eax,4fh
	jnz	@@9
;
;Need to get the mode's info block so we can keep the bank switch code address
;upto date.
;
	mov	edi,offset Int10hBuffer
	mov	Real_EAX[edi],4f01h
	mov	Real_ECX[edi],ebx
	mov	Real_EDI[edi],0
	mov	eax,TransferBuffer
	shr	eax,4
	mov	Real_ES[edi],ax
	mov	bl,10h
	sys	IntXX
	mov	eax,Real_EAX[edi]
	movzx	eax,ax
;
;This shouldn't really be able to fail but check anyway.
;
	cmp	eax,4fh
	jnz	@@9
;
;Copy the WinFuncPtr to somewhere useful.
;
	mov	edi,TransferBuffer
	mov	eax,d[edi+MIB_WinFuncPtr]
	mov	edi,offset WinFuncBuffer
	mov	Real_IP[edi],ax
	shr	eax,16
	mov	Real_CS[edi],ax
;
;Enable bank switching now we know where to go for it.
;
	or	BankFlags,-1		;enable bank code.
	mov	eax,4fh
;
@@9:	pop	edi
	pop	esi
	pop	edx
	pop	ecx
	pop	ebx
	ret
VESA_02	endp


;*******************************************************************************
;State size/save/restore function support.
;*******************************************************************************
VESA_04	proc	near
;
;Work out which subfunction is required.
;
	or	dl,dl
	jz	@@StateSize
	dec	dl
	jz	@@StateSave
	dec	dl
	jz	@@StateRestore
	jmp	@@9
;
;Just want state buffer size.
;
@@StateSize:	push	edi
	mov	edi,offset Int10hBuffer
	mov	Real_EAX[edi],4f04h
	mov	Real_ECX[edi],ecx
	mov	Real_EDX[edi],edx
	mov	bl,10h
	sys	IntXX
	mov	eax,Real_EAX[edi]
	mov	ebx,Real_EBX[edi]
	movzx	eax,ax
	movzx	ebx,bx
	pop	edi
	jmp	@@9
;
;Save state function.
;
@@StateSave:	push	ebx
	push	ecx
	push	edx
	push	esi
	push	edi
;
;Get real VESA function to fill in our buffer.
;
	push	ebx
	push	ecx
	mov	edi,offset Int10hBuffer
	mov	Real_EAX[edi],eax
	mov	Real_EBX[edi],0
	mov	Real_ECX[edi],ecx
	mov	Real_EDX[edi],edx
	mov	ebx,TransferBuffer
	shr	ebx,4
	mov	Real_ES[edi],ax
	mov	bl,10h
	sys	IntXX
	mov	eax,Real_EAX[edi]
	movzx	eax,ax
	pop	ecx
	pop	ebx
;
;Get the data size.
;
	push	eax
	push	ebx
	mov	ax,4f04h
	mov	dx,0
	int	10h
	mov	ecx,ebx
	pop	ebx
	pop	eax
;
;Now copy the data into the users buffer.
;
	shl	ecx,6
	mov	edi,ebx
	mov	esi,TransferBuffer
	cld
	rep	movsb
;
	pop	edi
	pop	esi
	pop	edx
	pop	ecx
	pop	ebx
	jmp	@@9
;
;Restore state function.
;
@@StateRestore: push ebx
	push	ecx
	push	edx
	push	esi
	push	edi
;
	push	ecx
	push	edx
;
;Need the buffer size so we know how much data to copy into low memory.
;
	push	eax
	push	ebx
	mov	ax,4f04h
	mov	dx,0
	int	10h
	mov	ecx,ebx
	pop	ebx
	pop	eax
	shl	ecx,6
;
;Now copy the data into low memory ready to send to real VESA function.
;
	mov	esi,ebx
	mov	edi,TransferBuffer
	cld
	rep	movsb
	pop	edx
	pop	ecx
;
;Now get the real VESA function to restore the state.
;
	mov	edi,offset Int10hBuffer
	mov	Real_EAX[edi],4f04h
	mov	Real_EBX[edi],0
	mov	Real_ECX[edi],ecx
	mov	Real_EDX[edi],edx
	mov	eax,TransferBuffer
	shr	eax,4
	mov	Real_ES[edi],ax
	mov	bl,10h
	sys	IntXX
	mov	eax,Real_EAX[edi]
	movzx	eax,ax
;
	pop	edi
	pop	esi
	pop	edx
	pop	ecx
	pop	ebx
;
@@9:	ret
VESA_04	endp


;*******************************************************************************
;Bank switch handler. If bank switching isn't enabled then the request is
;ignored.
;*******************************************************************************
WinFuncHandler	proc	near
	push	edi
;
;See if bank switching is allowed.
;
	cmp	BankFlags,0
	jz	@@9
;
;Call the real mode bank switch handler.
;
	mov	edi,offset WinFuncBuffer
	mov	Real_EAX[edi],4f05h
	mov	Real_EBX[edi],ebx
	mov	Real_EDX[edi],edx
	sys	FarCallReal
	mov	eax,Real_EAX[edi]
	mov	edx,Real_EDX[edi]
;
@@9:	pop	edi
	ret
WinFuncHandler	endp


	.data


OldInt10h	df 0
BankFlags	db 0
VESAPresent	db 0
TransferBuffer	dd 0

Int10hBuffer	db size RealRegsStruc dup (?)
WinFuncBuffer	db size RealRegsStruc dup (?)

Forced32kList	dw 10dh, 110h, 113h, 116h, -1
Forced64kList	dw 10eh, 111h, 114h, 117h, -1


;*******************************************************************************
;These are required to have the VESA patch applied automatically.
;*******************************************************************************
XIB	segment word public 'DATA'
XIB	ends
XI	segment word public 'DATA'
	db 0,15
	dd InitVESA
XI	ends
XIE	segment word public 'DATA'
XIE ends

YIB	segment word public 'DATA'
YIB	ends
YI	segment word public 'DATA'
	db 0,15
	dd RelVESA
YI	ends
YIE	segment word public 'DATA'
YIE ends

	end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区 二区| 精品一区二区精品| 精品国产一区二区三区四区四| 丁香亚洲综合激情啪啪综合| 亚洲午夜私人影院| 国产精品免费视频观看| 日韩限制级电影在线观看| 色综合久久综合网欧美综合网| 狠狠网亚洲精品| 五月天中文字幕一区二区| 综合中文字幕亚洲| 久久久亚洲午夜电影| 91麻豆精品国产自产在线| 色偷偷久久人人79超碰人人澡| 国产精品资源在线观看| 免费成人av资源网| 香蕉影视欧美成人| 亚洲综合色噜噜狠狠| 亚洲欧美在线高清| 亚洲国产精品精华液2区45| 精品久久一二三区| 欧美一区二区国产| 欧美精品自拍偷拍| 欧美日韩免费高清一区色橹橹| 97久久人人超碰| 国产成人激情av| 国产成人精品亚洲日本在线桃色 | 欧美日韩国产精选| 在线观看国产日韩| 色综合久久综合网97色综合| 99久久综合精品| 成人av电影免费在线播放| 丁香啪啪综合成人亚洲小说| 国产一区二区三区观看| 欧美综合视频在线观看| www.爱久久.com| 99在线精品观看| 99久久婷婷国产综合精品电影| 成人美女视频在线看| 成人高清伦理免费影院在线观看| 福利一区二区在线观看| 成人av中文字幕| 91丨porny丨中文| 色又黄又爽网站www久久| 99国产精品久久久久| 色综合久久精品| 色综合久久88色综合天天| 色久优优欧美色久优优| 欧美视频第二页| 欧美高清性hdvideosex| 日韩三级视频在线观看| 精品999在线播放| 国产亚洲精品久| 亚洲欧洲av在线| 亚洲成人你懂的| 久久69国产一区二区蜜臀| 国产精品一区二区三区四区| proumb性欧美在线观看| 欧美在线观看你懂的| 777a∨成人精品桃花网| 精品成人一区二区三区| 国产精品国产三级国产有无不卡 | 一区二区三区精品| 日韩中文字幕区一区有砖一区 | 一区二区三区高清在线| 日韩精品一级中文字幕精品视频免费观看 | 日韩免费高清电影| 久久一二三国产| 亚洲男人的天堂在线aⅴ视频| 亚洲一区国产视频| 99久久精品免费看国产| 欧美午夜不卡视频| 日韩精品资源二区在线| 国产精品午夜在线观看| 亚洲图片欧美视频| 国产乱子伦视频一区二区三区| 99re热这里只有精品免费视频 | 欧美国产成人精品| 中文字幕免费一区| 伊人性伊人情综合网| 午夜精品久久久久影视| 国产在线不卡视频| 在线观看免费一区| 精品国产自在久精品国产| 综合在线观看色| 久久国产精品99精品国产| 91网站在线观看视频| 欧美一区二区啪啪| 中文字幕日韩一区二区| 奇米888四色在线精品| 99综合电影在线视频| 欧美日本国产视频| 国产精品三级视频| 毛片av中文字幕一区二区| 91网站最新网址| 欧美精品一区二区不卡| 一区二区三区.www| 国产99久久久国产精品免费看| 欧美日韩一区二区三区免费看| 国产日韩精品久久久| 婷婷综合五月天| 91亚洲精品久久久蜜桃| 久久久综合网站| 日本美女一区二区三区| 色呦呦网站一区| 中文字幕乱码一区二区免费| 免费人成精品欧美精品| 在线亚洲一区二区| 国产精品嫩草久久久久| 精品一区二区三区在线观看 | 国产精品一品二品| 欧美一级片在线看| 亚洲福利视频一区| 色呦呦国产精品| 国产精品美女久久福利网站| 精品一区二区三区久久| 精品视频一区二区不卡| 亚洲欧美福利一区二区| 成人激情开心网| 国产日韩欧美高清| 国产毛片精品视频| 日韩精品一区二区三区swag| 午夜精品影院在线观看| 欧洲视频一区二区| 亚洲免费三区一区二区| 91在线无精精品入口| 国产精品高潮久久久久无| 大白屁股一区二区视频| 欧美国产日韩亚洲一区| 国产在线播放一区二区三区| 精品日韩成人av| 精品一区二区免费视频| 久久综合九色综合欧美就去吻 | 日韩午夜中文字幕| 日本不卡1234视频| 日韩欧美久久久| 精品一区二区三区蜜桃| 久久综合久久久久88| 国产毛片精品一区| 欧美激情一区二区三区四区| 国产成人av电影在线| 国产精品女人毛片| 一本色道亚洲精品aⅴ| 一区二区三区在线免费观看 | 欧美日韩国产综合久久| 三级久久三级久久久| 91精品国产一区二区三区| 奇米影视7777精品一区二区| 精品久久久网站| 国产一本一道久久香蕉| 国产精品毛片大码女人| 一本大道综合伊人精品热热| 亚洲大型综合色站| 欧美日韩国产区一| 美腿丝袜一区二区三区| 久久免费的精品国产v∧| 成人久久视频在线观看| 亚洲精品中文在线观看| 欧美日韩国产免费一区二区 | 亚洲精品日韩一| 欧美体内she精视频| 奇米777欧美一区二区| 国产亚洲精品bt天堂精选| 99免费精品视频| 午夜成人免费电影| 久久久三级国产网站| 99精品视频中文字幕| 亚洲成在线观看| 久久婷婷综合激情| 91在线国产观看| 日韩av不卡在线观看| 国产欧美日韩三区| 日本大香伊一区二区三区| 久热成人在线视频| 国产精品久久久久影视| 欧美精品 国产精品| 国产福利一区二区三区视频在线 | 中文字幕乱码亚洲精品一区| 色婷婷久久综合| 久久不见久久见免费视频1| 国产精品久久久一本精品| 欧美群妇大交群中文字幕| 国产精品综合网| 亚洲bt欧美bt精品| 国产欧美中文在线| 欧美另类高清zo欧美| 成人理论电影网| 久久国内精品自在自线400部| 国产精品国产自产拍高清av王其| 91麻豆精品国产91久久久| 99re这里都是精品| 国产在线精品国自产拍免费| 亚洲图片欧美视频| 国产精品视频一二| 日韩精品一区二区三区在线观看 | 波多野洁衣一区| 麻豆精品新av中文字幕| 一区二区三区丝袜| 欧美韩国日本综合| 日韩精品一区二区在线|