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

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

?? pmtest8.asm

?? 于淵編著
?? ASM
字號:
; ==========================================
; pmtest8.asm
; 編譯方法:nasm pmtest8.asm -o pmtest8.com
; ==========================================

%include	"pm.inc"	; 常量, 宏, 以及一些說明

PageDirBase0		equ	200000h	; 頁目錄開始地址:	2M
PageTblBase0		equ	201000h	; 頁表開始地址:		2M +  4K
PageDirBase1		equ	210000h	; 頁目錄開始地址:	2M + 64K
PageTblBase1		equ	211000h	; 頁表開始地址:		2M + 64K + 4K

LinearAddrDemo	equ	00401000h
ProcFoo		equ	00401000h
ProcBar		equ	00501000h

ProcPagingDemo	equ	00301000h

org	0100h
	jmp	LABEL_BEGIN

[SECTION .gdt]
; GDT
;                                         段基址,       段界限     , 屬性
LABEL_GDT:		Descriptor	       0,                 0, 0				; 空描述符
LABEL_DESC_NORMAL:	Descriptor	       0,            0ffffh, DA_DRW			; Normal 描述符
LABEL_DESC_FLAT_C:	Descriptor             0,           0fffffh, DA_CR | DA_32 | DA_LIMIT_4K; 0 ~ 4G
LABEL_DESC_FLAT_RW:	Descriptor             0,           0fffffh, DA_DRW | DA_LIMIT_4K	; 0 ~ 4G
LABEL_DESC_CODE32:	Descriptor	       0,  SegCode32Len - 1, DA_CR | DA_32		; 非一致代碼段, 32
LABEL_DESC_CODE16:	Descriptor	       0,            0ffffh, DA_C			; 非一致代碼段, 16
LABEL_DESC_DATA:	Descriptor	       0,	DataLen - 1, DA_DRW			; Data
LABEL_DESC_STACK:	Descriptor	       0,        TopOfStack, DA_DRWA | DA_32		; Stack, 32 位
LABEL_DESC_VIDEO:	Descriptor	 0B8000h,            0ffffh, DA_DRW			; 顯存首地址
; GDT 結束

GdtLen		equ	$ - LABEL_GDT	; GDT長度
GdtPtr		dw	GdtLen - 1	; GDT界限
		dd	0		; GDT基地址

; GDT 選擇子
SelectorNormal		equ	LABEL_DESC_NORMAL	- LABEL_GDT
SelectorFlatC		equ	LABEL_DESC_FLAT_C	- LABEL_GDT
SelectorFlatRW		equ	LABEL_DESC_FLAT_RW	- LABEL_GDT
SelectorCode32		equ	LABEL_DESC_CODE32	- LABEL_GDT
SelectorCode16		equ	LABEL_DESC_CODE16	- LABEL_GDT
SelectorData		equ	LABEL_DESC_DATA		- LABEL_GDT
SelectorStack		equ	LABEL_DESC_STACK	- LABEL_GDT
SelectorVideo		equ	LABEL_DESC_VIDEO	- LABEL_GDT
; END of [SECTION .gdt]

[SECTION .data1]	 ; 數據段
ALIGN	32
[BITS	32]
LABEL_DATA:
; 實模式下使用這些符號
; 字符串
_szPMMessage:			db	"In Protect Mode now. ^-^", 0Ah, 0Ah, 0	; 進入保護模式后顯示此字符串
_szMemChkTitle:			db	"BaseAddrL BaseAddrH LengthLow LengthHigh   Type", 0Ah, 0	; 進入保護模式后顯示此字符串
_szRAMSize			db	"RAM size:", 0
_szReturn			db	0Ah, 0
; 變量
_wSPValueInRealMode		dw	0
_dwMCRNumber:			dd	0	; Memory Check Result
_dwDispPos:			dd	(80 * 6 + 0) * 2	; 屏幕第 6 行, 第 0 列。
_dwMemSize:			dd	0
_ARDStruct:			; Address Range Descriptor Structure
	_dwBaseAddrLow:		dd	0
	_dwBaseAddrHigh:	dd	0
	_dwLengthLow:		dd	0
	_dwLengthHigh:		dd	0
	_dwType:		dd	0
_PageTableNumber		dd	0

_MemChkBuf:	times	256	db	0

; 保護模式下使用這些符號
szPMMessage		equ	_szPMMessage	- $$
szMemChkTitle		equ	_szMemChkTitle	- $$
szRAMSize		equ	_szRAMSize	- $$
szReturn		equ	_szReturn	- $$
dwDispPos		equ	_dwDispPos	- $$
dwMemSize		equ	_dwMemSize	- $$
dwMCRNumber		equ	_dwMCRNumber	- $$
ARDStruct		equ	_ARDStruct	- $$
	dwBaseAddrLow	equ	_dwBaseAddrLow	- $$
	dwBaseAddrHigh	equ	_dwBaseAddrHigh	- $$
	dwLengthLow	equ	_dwLengthLow	- $$
	dwLengthHigh	equ	_dwLengthHigh	- $$
	dwType		equ	_dwType		- $$
MemChkBuf		equ	_MemChkBuf	- $$
PageTableNumber		equ	_PageTableNumber- $$

DataLen			equ	$ - LABEL_DATA
; END of [SECTION .data1]


; 全局堆棧段
[SECTION .gs]
ALIGN	32
[BITS	32]
LABEL_STACK:
	times 512 db 0

TopOfStack	equ	$ - LABEL_STACK - 1

; END of [SECTION .gs]


[SECTION .s16]
[BITS	16]
LABEL_BEGIN:
	mov	ax, cs
	mov	ds, ax
	mov	es, ax
	mov	ss, ax
	mov	sp, 0100h

	mov	[LABEL_GO_BACK_TO_REAL+3], ax
	mov	[_wSPValueInRealMode], sp

	; 得到內存數
	mov	ebx, 0
	mov	di, _MemChkBuf
.loop:
	mov	eax, 0E820h
	mov	ecx, 20
	mov	edx, 0534D4150h
	int	15h
	jc	LABEL_MEM_CHK_FAIL
	add	di, 20
	inc	dword [_dwMCRNumber]
	cmp	ebx, 0
	jne	.loop
	jmp	LABEL_MEM_CHK_OK
LABEL_MEM_CHK_FAIL:
	mov	dword [_dwMCRNumber], 0
LABEL_MEM_CHK_OK:

	; 初始化 16 位代碼段描述符
	mov	ax, cs
	movzx	eax, ax
	shl	eax, 4
	add	eax, LABEL_SEG_CODE16
	mov	word [LABEL_DESC_CODE16 + 2], ax
	shr	eax, 16
	mov	byte [LABEL_DESC_CODE16 + 4], al
	mov	byte [LABEL_DESC_CODE16 + 7], ah

	; 初始化 32 位代碼段描述符
	xor	eax, eax
	mov	ax, cs
	shl	eax, 4
	add	eax, LABEL_SEG_CODE32
	mov	word [LABEL_DESC_CODE32 + 2], ax
	shr	eax, 16
	mov	byte [LABEL_DESC_CODE32 + 4], al
	mov	byte [LABEL_DESC_CODE32 + 7], ah

	; 初始化數據段描述符
	xor	eax, eax
	mov	ax, ds
	shl	eax, 4
	add	eax, LABEL_DATA
	mov	word [LABEL_DESC_DATA + 2], ax
	shr	eax, 16
	mov	byte [LABEL_DESC_DATA + 4], al
	mov	byte [LABEL_DESC_DATA + 7], ah

	; 初始化堆棧段描述符
	xor	eax, eax
	mov	ax, ds
	shl	eax, 4
	add	eax, LABEL_STACK
	mov	word [LABEL_DESC_STACK + 2], ax
	shr	eax, 16
	mov	byte [LABEL_DESC_STACK + 4], al
	mov	byte [LABEL_DESC_STACK + 7], ah

	; 為加載 GDTR 作準備
	xor	eax, eax
	mov	ax, ds
	shl	eax, 4
	add	eax, LABEL_GDT		; eax <- gdt 基地址
	mov	dword [GdtPtr + 2], eax	; [GdtPtr + 2] <- gdt 基地址

	; 加載 GDTR
	lgdt	[GdtPtr]

	; 關中斷
	cli

	; 打開地址線A20
	in	al, 92h
	or	al, 00000010b
	out	92h, al

	; 準備切換到保護模式
	mov	eax, cr0
	or	eax, 1
	mov	cr0, eax

	; 真正進入保護模式
	jmp	dword SelectorCode32:0	; 執行這一句會把 SelectorCode32 裝入 cs, 并跳轉到 Code32Selector:0  處

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

LABEL_REAL_ENTRY:		; 從保護模式跳回到實模式就到了這里
	mov	ax, cs
	mov	ds, ax
	mov	es, ax
	mov	ss, ax

	mov	sp, [_wSPValueInRealMode]

	in	al, 92h		; ┓
	and	al, 11111101b	; ┣ 關閉 A20 地址線
	out	92h, al		; ┛

	sti			; 開中斷

	mov	ax, 4c00h	; ┓
	int	21h		; ┛回到 DOS
; END of [SECTION .s16]


[SECTION .s32]; 32 位代碼段. 由實模式跳入.
[BITS	32]

LABEL_SEG_CODE32:
	mov	ax, SelectorData
	mov	ds, ax			; 數據段選擇子
	mov	es, ax
	mov	ax, SelectorVideo
	mov	gs, ax			; 視頻段選擇子

	mov	ax, SelectorStack
	mov	ss, ax			; 堆棧段選擇子

	mov	esp, TopOfStack


	; 下面顯示一個字符串
	push	szPMMessage
	call	DispStr
	add	esp, 4

	push	szMemChkTitle
	call	DispStr
	add	esp, 4

	call	DispMemSize		; 顯示內存信息

	call	PagingDemo		; 演示改變頁目錄的效果

	; 到此停止
	jmp	SelectorCode16:0

; 啟動分頁機制 --------------------------------------------------------------
SetupPaging:
	; 根據內存大小計算應初始化多少PDE以及多少頁表
	xor	edx, edx
	mov	eax, [dwMemSize]
	mov	ebx, 400000h	; 400000h = 4M = 4096 * 1024, 一個頁表對應的內存大小
	div	ebx
	mov	ecx, eax	; 此時 ecx 為頁表的個數,也即 PDE 應該的個數
	test	edx, edx
	jz	.no_remainder
	inc	ecx		; 如果余數不為 0 就需增加一個頁表
.no_remainder:
	mov	[PageTableNumber], ecx	; 暫存頁表個數

	; 為簡化處理, 所有線性地址對應相等的物理地址. 并且不考慮內存空洞.

	; 首先初始化頁目錄
	mov	ax, SelectorFlatRW
	mov	es, ax
	mov	edi, PageDirBase0	; 此段首地址為 PageDirBase0
	xor	eax, eax
	mov	eax, PageTblBase0 | PG_P  | PG_USU | PG_RWW
.1:
	stosd
	add	eax, 4096		; 為了簡化, 所有頁表在內存中是連續的.
	loop	.1

	; 再初始化所有頁表
	mov	eax, [PageTableNumber]	; 頁表個數
	mov	ebx, 1024		; 每個頁表 1024 個 PTE
	mul	ebx
	mov	ecx, eax		; PTE個數 = 頁表個數 * 1024
	mov	edi, PageTblBase0	; 此段首地址為 PageTblBase0
	xor	eax, eax
	mov	eax, PG_P  | PG_USU | PG_RWW
.2:
	stosd
	add	eax, 4096		; 每一頁指向 4K 的空間
	loop	.2

	mov	eax, PageDirBase0
	mov	cr3, eax
	mov	eax, cr0
	or	eax, 80000000h
	mov	cr0, eax
	jmp	short .3
.3:
	nop

	ret
; 分頁機制啟動完畢 ----------------------------------------------------------


; 測試分頁機制 --------------------------------------------------------------
PagingDemo:
	mov	ax, cs
	mov	ds, ax
	mov	ax, SelectorFlatRW
	mov	es, ax

	push	LenFoo
	push	OffsetFoo
	push	ProcFoo
	call	MemCpy
	add	esp, 12

	push	LenBar
	push	OffsetBar
	push	ProcBar
	call	MemCpy
	add	esp, 12

	push	LenPagingDemoAll
	push	OffsetPagingDemoProc
	push	ProcPagingDemo
	call	MemCpy
	add	esp, 12

	mov	ax, SelectorData
	mov	ds, ax			; 數據段選擇子
	mov	es, ax

	call	SetupPaging		; 啟動分頁

	call	SelectorFlatC:ProcPagingDemo
	call	PSwitch			; 切換頁目錄,改變地址映射關系
	call	SelectorFlatC:ProcPagingDemo

	ret
; ---------------------------------------------------------------------------


; 切換頁表 ------------------------------------------------------------------
PSwitch:
	; 初始化頁目錄
	mov	ax, SelectorFlatRW
	mov	es, ax
	mov	edi, PageDirBase1	; 此段首地址為 PageDirBase1
	xor	eax, eax
	mov	eax, PageTblBase1 | PG_P  | PG_USU | PG_RWW
	mov	ecx, [PageTableNumber]
.1:
	stosd
	add	eax, 4096		; 為了簡化, 所有頁表在內存中是連續的.
	loop	.1

	; 再初始化所有頁表
	mov	eax, [PageTableNumber]	; 頁表個數
	mov	ebx, 1024		; 每個頁表 1024 個 PTE
	mul	ebx
	mov	ecx, eax		; PTE個數 = 頁表個數 * 1024
	mov	edi, PageTblBase1	; 此段首地址為 PageTblBase1
	xor	eax, eax
	mov	eax, PG_P  | PG_USU | PG_RWW
.2:
	stosd
	add	eax, 4096		; 每一頁指向 4K 的空間
	loop	.2

	; 在此假設內存是大于 8M 的
	mov	eax, LinearAddrDemo
	shr	eax, 22
	mov	ebx, 4096
	mul	ebx
	mov	ecx, eax
	mov	eax, LinearAddrDemo
	shr	eax, 12
	and	eax, 03FFh	; 1111111111b (10 bits)
	mov	ebx, 4
	mul	ebx
	add	eax, ecx
	add	eax, PageTblBase1
	mov	dword [es:eax], ProcBar | PG_P | PG_USU | PG_RWW

	mov	eax, PageDirBase1
	mov	cr3, eax
	jmp	short .3
.3:
	nop

	ret
; ---------------------------------------------------------------------------


; PagingDemoProc ------------------------------------------------------------
PagingDemoProc:
OffsetPagingDemoProc	equ	PagingDemoProc - $$
	mov	eax, LinearAddrDemo
	call	eax
	retf
; ---------------------------------------------------------------------------
LenPagingDemoAll	equ	$ - PagingDemoProc
; ---------------------------------------------------------------------------


; foo -----------------------------------------------------------------------
foo:
OffsetFoo	equ	foo - $$
	mov	ah, 0Ch			; 0000: 黑底    1100: 紅字
	mov	al, 'F'
	mov	[gs:((80 * 17 + 0) * 2)], ax	; 屏幕第 17 行, 第 0 列。
	mov	al, 'o'
	mov	[gs:((80 * 17 + 1) * 2)], ax	; 屏幕第 17 行, 第 1 列。
	mov	[gs:((80 * 17 + 2) * 2)], ax	; 屏幕第 17 行, 第 2 列。
	ret
LenFoo	equ	$ - foo
; ---------------------------------------------------------------------------


; bar -----------------------------------------------------------------------
bar:
OffsetBar	equ	bar - $$
	mov	ah, 0Ch			; 0000: 黑底    1100: 紅字
	mov	al, 'B'
	mov	[gs:((80 * 18 + 0) * 2)], ax	; 屏幕第 18 行, 第 0 列。
	mov	al, 'a'
	mov	[gs:((80 * 18 + 1) * 2)], ax	; 屏幕第 18 行, 第 1 列。
	mov	al, 'r'
	mov	[gs:((80 * 18 + 2) * 2)], ax	; 屏幕第 18 行, 第 2 列。
	ret
LenBar	equ	$ - bar
; ---------------------------------------------------------------------------


; 顯示內存信息 --------------------------------------------------------------
DispMemSize:
	push	esi
	push	edi
	push	ecx

	mov	esi, MemChkBuf
	mov	ecx, [dwMCRNumber]	;for(int i=0;i<[MCRNumber];i++) // 每次得到一個ARDS(Address Range Descriptor Structure)結構
.loop:					;{
	mov	edx, 5			;	for(int j=0;j<5;j++)	// 每次得到一個ARDS中的成員,共5個成員
	mov	edi, ARDStruct		;	{			// 依次顯示:BaseAddrLow,BaseAddrHigh,LengthLow,LengthHigh,Type
.1:					;
	push	dword [esi]		;
	call	DispInt			;		DispInt(MemChkBuf[j*4]); // 顯示一個成員
	pop	eax			;
	stosd				;		ARDStruct[j*4] = MemChkBuf[j*4];
	add	esi, 4			;
	dec	edx			;
	cmp	edx, 0			;
	jnz	.1			;	}
	call	DispReturn		;	printf("\n");
	cmp	dword [dwType], 1	;	if(Type == AddressRangeMemory) // AddressRangeMemory : 1, AddressRangeReserved : 2
	jne	.2			;	{
	mov	eax, [dwBaseAddrLow]	;
	add	eax, [dwLengthLow]	;
	cmp	eax, [dwMemSize]	;		if(BaseAddrLow + LengthLow > MemSize)
	jb	.2			;
	mov	[dwMemSize], eax	;			MemSize = BaseAddrLow + LengthLow;
.2:					;	}
	loop	.loop			;}
					;
	call	DispReturn		;printf("\n");
	push	szRAMSize		;
	call	DispStr			;printf("RAM size:");
	add	esp, 4			;
					;
	push	dword [dwMemSize]	;
	call	DispInt			;DispInt(MemSize);
	add	esp, 4			;

	pop	ecx
	pop	edi
	pop	esi
	ret
; ---------------------------------------------------------------------------

%include	"lib.inc"	; 庫函數

SegCode32Len	equ	$ - LABEL_SEG_CODE32
; END of [SECTION .s32]


; 16 位代碼段. 由 32 位代碼段跳入, 跳出后到實模式
[SECTION .s16code]
ALIGN	32
[BITS	16]
LABEL_SEG_CODE16:
	; 跳回實模式:
	mov	ax, SelectorNormal
	mov	ds, ax
	mov	es, ax
	mov	fs, ax
	mov	gs, ax
	mov	ss, ax

	mov	eax, cr0
	and	al, 11111110b
	mov	cr0, eax

LABEL_GO_BACK_TO_REAL:
	jmp	0:LABEL_REAL_ENTRY	; 段地址會在程序開始處被設置成正確的值

Code16Len	equ	$ - LABEL_SEG_CODE16

; END of [SECTION .s16code]

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久国产综合色|国产精品| 欧美精品久久久久久久多人混战| 在线一区二区视频| 欧美r级电影在线观看| 自拍偷在线精品自拍偷无码专区| 日韩综合一区二区| av成人老司机| 国产三区在线成人av| 视频一区二区三区中文字幕| 91麻豆.com| 国产欧美日韩在线看| 国模一区二区三区白浆| 欧美精品 国产精品| 一区二区三区四区蜜桃| 99精品欧美一区| 欧美国产在线观看| 国产精品白丝jk黑袜喷水| 日韩欧美在线综合网| 亚洲成人第一页| 91成人网在线| 亚洲精品视频免费观看| 成人晚上爱看视频| 国产肉丝袜一区二区| 国产精品自在欧美一区| 精品国产乱码久久久久久1区2区| 日韩专区在线视频| 欧美一区二区三区思思人| 午夜伦欧美伦电影理论片| 欧美性做爰猛烈叫床潮| 亚洲午夜国产一区99re久久| 欧美午夜在线观看| 天堂成人国产精品一区| 91精品国产全国免费观看| 天天影视网天天综合色在线播放| 欧美日韩国产中文| 日本欧美加勒比视频| 日韩一区二区视频在线观看| 蜜桃av一区二区三区电影| 欧美大片一区二区三区| 极品美女销魂一区二区三区| 国产日韩一级二级三级| 波多野结衣在线aⅴ中文字幕不卡| 国产精品大尺度| 91网站在线观看视频| 亚洲在线免费播放| 欧美一级二级在线观看| 激情另类小说区图片区视频区| 久久免费偷拍视频| av日韩在线网站| 亚洲国产精品精华液网站| 制服丝袜亚洲色图| 国产精品99久久久久久宅男| 综合自拍亚洲综合图不卡区| 欧美视频在线一区二区三区| 久久精品99国产精品| 国产日韩欧美精品一区| 欧美伊人久久久久久午夜久久久久| 亚洲成人av福利| 亚洲精品在线观看视频| av亚洲精华国产精华精华| 香蕉久久夜色精品国产使用方法| 精品日韩av一区二区| 国产成人aaa| 亚洲第一在线综合网站| 久久免费午夜影院| 欧美视频在线一区二区三区| 精品一区二区三区香蕉蜜桃| 中文字幕欧美一区| 91精品国产综合久久精品麻豆 | 日韩一区二区三区视频在线 | jlzzjlzz亚洲女人18| 亚洲第一在线综合网站| 欧美xxxx在线观看| 色综合久久综合中文综合网| 另类小说综合欧美亚洲| 亚洲乱码国产乱码精品精小说| 日韩一区二区在线观看视频 | 亚洲精品五月天| 日韩精品一区二区在线| 欧美影视一区二区三区| 丰满放荡岳乱妇91ww| 久久精工是国产品牌吗| 亚洲一区二区三区在线看| 欧美韩日一区二区三区四区| 欧美一区二区三区在线视频| 色综合久久久久综合99| 国产福利一区在线观看| 美女视频一区在线观看| 亚洲国产日韩综合久久精品| 国产精品国产三级国产普通话99 | 欧美日韩小视频| 99久久精品国产毛片| 国产专区欧美精品| 日韩电影在线免费看| 一区二区三区四区av| 国产精品丝袜久久久久久app| 日韩午夜av一区| 欧美日韩日本视频| 在线看国产一区二区| 成人av电影在线播放| 国产精品中文字幕一区二区三区| 青青草97国产精品免费观看无弹窗版| 一级做a爱片久久| 玉足女爽爽91| 亚洲女同ⅹxx女同tv| 1024精品合集| 最近日韩中文字幕| 亚洲日本在线a| 亚洲欧洲综合另类在线| 中文字幕一区日韩精品欧美| 日本一区二区三级电影在线观看| 久久精品无码一区二区三区| 精品国产凹凸成av人导航| 日韩三级伦理片妻子的秘密按摩| 日韩一区二区三区视频在线| 日韩欧美在线影院| 精品国产乱码久久久久久老虎| 日韩你懂的电影在线观看| 日韩一区二区三区免费看| 欧美一区二区成人6969| 日韩精品一区二区在线| 国产午夜三级一区二区三| 中文字幕精品—区二区四季| 国产精品进线69影院| 亚洲人午夜精品天堂一二香蕉| 亚洲免费大片在线观看| 亚洲成人你懂的| 日本午夜一本久久久综合| 九色综合国产一区二区三区| 国产一区在线精品| 成人app下载| 欧美日韩精品一区二区三区 | 欧美精品日日鲁夜夜添| 在线成人av网站| 精品国产乱码91久久久久久网站| 日本一区二区视频在线| 亚洲九九爱视频| 日韩高清欧美激情| 国产精品99久久久久久宅男| 色先锋aa成人| 91精品国产乱| 中文字幕国产一区二区| 有码一区二区三区| 激情综合网激情| 91一区在线观看| 日韩一级二级三级| 国产精品伦一区二区三级视频| 亚洲一区二区在线免费观看视频| 裸体在线国模精品偷拍| 不卡欧美aaaaa| 欧美一区2区视频在线观看| 久久久另类综合| 亚洲小说春色综合另类电影| 极品少妇xxxx精品少妇| 日本电影欧美片| 欧美videossexotv100| 亚洲欧美日韩中文播放 | 午夜天堂影视香蕉久久| 韩日欧美一区二区三区| 欧亚一区二区三区| 国产欧美中文在线| 亚洲va中文字幕| 不卡一区二区中文字幕| 555www色欧美视频| 亚洲欧美另类图片小说| 精品午夜一区二区三区在线观看| 色婷婷精品久久二区二区蜜臀av| 日韩欧美一卡二卡| 亚洲国产日韩综合久久精品| 99国内精品久久| 精品日韩一区二区三区免费视频| 亚洲国产欧美在线| 成人精品一区二区三区中文字幕| 欧美一级理论片| 午夜视频一区二区三区| 99精品视频在线免费观看| 国产亚洲美州欧州综合国| 麻豆国产一区二区| 欧美色视频在线| 一区二区三区在线视频观看58| 岛国av在线一区| 久久综合成人精品亚洲另类欧美 | k8久久久一区二区三区| 久久亚洲综合色一区二区三区| 午夜电影久久久| 在线观看免费视频综合| 亚洲色图一区二区| jlzzjlzz国产精品久久| 国产精品素人视频| 成人福利电影精品一区二区在线观看| 欧美www视频| 裸体在线国模精品偷拍| 欧美精三区欧美精三区| 日韩av中文字幕一区二区三区| 欧美中文字幕不卡| 亚洲国产成人av网| 欧美美女一区二区| 日韩av不卡一区二区| 69av一区二区三区| 免费视频一区二区|