青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

統(tǒng)計

  • 隨筆 - 21
  • 文章 - 0
  • 評論 - 2
  • 引用 - 0

常用鏈接

留言簿

隨筆分類

隨筆檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

第二章 系統(tǒng)架構瀏覽2.2-2.4小節(jié)

2.2 MODES OF OPERATION 操作的模式

The IA-32 supports three operating modes and one quasi-operating mode:

IA32支持下面的三種操作模式和一種類似的模式

Protected mode — This is the native operating mode of the processor. It

provides a rich set of architectural features, flexibility, high performance and

backward compatibility to existing software base.

保護模式:處理器本身擁有的模式。該模式提供了一個關于架構特性,系統(tǒng)彈性,高速運行以及向后兼容現(xiàn)有軟件的豐富集合。

 

Real-address mode — This operating mode provides the programming

environment of the Intel 8086 processor, with a few extensions (such as the

ability to switch to protected or system management mode).

實地址模式:這種操作模式提供了intel8086處理器的編程環(huán)境,包括一些擴展的特性(比如在保護模式和系統(tǒng)管理模式之間的相互切換)

 

System management mode (SMM) — SMM is a standard architectural feature

in all IA-32 processors, beginning with the Intel386 SL processor. This mode

provides an operating system or executive with a transparent mechanism for

implementing power management and OEM differentiation features. SMM is

entered through activation of an external system interrupt pin (SMI#), which

generates a system management interrupt (SMI). In SMM, the processor

switches to a separate address space while saving the context of the currently

running program or task. SMM-specific code may then be executed transparently.

Upon returning from SMM, the processor is placed back into its state prior to the

SMI.

系統(tǒng)管理模式(SMM):SMM是一種自itel386 SL處理器開始,,所有IA32處理都擁有的標準架構模式。這種模式為操作系統(tǒng)或者程序提供了一種在電源管理,不同設備廠生的不同特性的管理等的透明的架構。SMM模式通過外部中斷(SMI#)來激活,激活的同時會產(chǎn)生一個系統(tǒng)管理中斷(SMI)。在SMM模式下,處理器在切換至獨立的地址空間的時候,會將直接保存當前程序或者當前任務的上下文。當SMM模式返回是,SMM的特定的代碼會被透明的執(zhí)行。??后面這句不懂。

 

Virtual-8086 mode — In protected mode, the processor supports a quasioperating

mode known as virtual-8086 mode. This mode allows the processor

execute 8086 software in a protected, multitasking environment.

Intel 64 architecture supports all operating modes of IA-32 architecture and IA-32e

modes:
虛擬8086模式:在保護模式下,處理器支持一種與保護模式十分類似的模式,這種模式叫虛擬8086模式。

這種模式允許處理去在一個受保護的,多任務的環(huán)境中運行8086的程序。Intel64位架構支持所有關于IA32IA32e的模式。

 

IA-32e mode — In IA-32e mode, the processor supports two sub-modes:

compatibility mode and 64-bit mode. 64-bit mode provides 64-bit linear

addressing and support for physical address space larger than 64 GBytes.

Compatibility mode allows most legacy protected-mode applications to run

unchanged.

Figure 2-3 shows how the processor moves between operating modes.

IE32E模式:在IE32E模式下,處理器支持兩種子模式:兼容模式和64位模式。64位模式提供64位的線性地址,這使得這種模式可以用于超過64GB的物理地址空間。而兼容模式則允許絕大數(shù)在保護模式下合法的程序不經(jīng)修改即可在該模式上運行。圖2-3說明了處理器如何在操作模式間切換。

The processor is placed in real-address mode following power-up or a reset. The PE

flag in control register CR0 then controls whether the processor is operating in realaddress

or protected mode. See also: Section 9.9, “Mode Switching.”

當電源接通或者重啟時,處理器是在實地址模式下運行的。CR0控制寄存器里的PE標識控制處理器是在實地址模式下運行,還是在保護模式下運行。查看章節(jié)9.9.

The VM flag in the EFLAGS register determines whether the processor is operating in

protected mode or virtual-8086 mode. Transitions between protected mode and

virtual-8086 mode are generally carried out as part of a task switch or a return from

an interrupt or exception handler. See also: Section 15.2.5, “Entering Virtual-8086

Mode.”

EFLAGS寄存器里的VM標識決定處理器是運行在保護模式下,還是運行在虛擬8086模式下。通常,在一個中斷或者異常捕捉器返回,或者任務切換時,兩種模式的切換就會完成。看章節(jié)15.2.5.

 

 

The LMA bit (IA32_EFER.LMA.LMA[bit 10]) determines whether the processor is

operating in IA-32e mode. When running in IA-32e mode, 64-bit or compatibility

sub-mode operation is determined by CS.L bit of the code segment. The processor

enters into IA-32e mode from protected mode by enabling paging and setting the

LME bit (IA32_EFER.LME[bit 8]). See also: Chapter 9, “Processor Management and

Initialization.”

IA32_EFER_LMA_LMA的第十個字節(jié))LMA位決定處理器是否運行在IA32E模式下。代碼段的CS.L位決定處理器是運行在IA32E模式下,還是運行在64位模式下,還是運行在兼容模式下。當設置LME位(IA32_EFER_LME的第8個自己)和啟用分頁時,處理器會自動從保護模式進入到IA32E模式。

看章節(jié)9.

 

 

The processor switches to SMM whenever it receives an SMI while the processor is in

real-address, protected, virtual-8086, or IA-32e modes. Upon execution of the RSM

instruction, the processor always returns to the mode it was in when the SMI

occurred.

當處理器運行在實地址模式,或是保護模式,或是虛擬8086模式,或是IA32E模式下的時候,一旦處理器收到一個系統(tǒng)管理中斷,處理器就會切換至系統(tǒng)管理模式。當RSM指令返回時,處理器總是切換回它在系統(tǒng)管理模式運行之前的模式。

 

 

 

2.3 SYSTEM FLAGS AND FIELDS IN THE EFLAGS

REGISTER(EFLAGS寄存器的系統(tǒng)標識和標識塊)

The system flags and IOPL field of the EFLAGS register control I/O, maskable hardware

interrupts, debugging, task switching, and the virtual-8086 mode (see

Figure 2-4). Only privileged code (typically operating system or executive code)

should be allowed to modify these bits.

The system flags and IOPL are:

EFLAGS寄存器里的系統(tǒng)標識符和IO權限等級塊控制 I/O,硬件中斷的屏蔽,調試,任務切換和虛擬8086模式(看圖2-4),只有權限操作代碼(以操作系統(tǒng)代碼或者程序代碼為代表)才被允許修改這些位的值。

下面是系統(tǒng)標識和IO權限控制塊的內容:

 

 

TF Trap (bit 8) — Set to enable single-step mode for debugging; clear to

disable single-step mode. In single-step mode, the processor generates a

debug exception after each instruction. This allows the execution state of a

program to be inspected after each instruction. If an application program

sets the TF flag using a POPF, POPFD, or IRET instruction, a debug exception

is generated after the instruction that follows the POPF, POPFD, or IRET.

TF陷入(第8位):設值的時候激活調試的單步執(zhí)行模式;清零則禁止單步執(zhí)行模式。在單步執(zhí)行模式下,處理器會在每條指令執(zhí)行后產(chǎn)生一個調試異常中斷,中斷后允許查看每條指令執(zhí)行后程序的狀態(tài)。當程序用OPPF,OPOFD,IRET指令來設置TF標識的時候,POPF,POPFD,IRET后的第一條指令會誘發(fā)一個調試異常中斷。

 

IF Interrupt enable (bit 9) — Controls the response of the processor to

maskable hardware interrupt requests (see also: Section 5.3.2, “Maskable

Hardware Interrupts”). The flag is set to respond to maskable hardware

interrupts; cleared to inhibit maskable hardware interrupts. The IF flag does

not affect the generation of exceptions or nonmaskable interrupts (NMI

interrupts). The CPL, IOPL, and the state of the VME flag in control register

CR4 determine whether the IF flag can be modified by the CLI, STI, POPF,

POPFD, and IRET.

IF 中斷激活(第9位):控制處理器對硬件中斷屏蔽要求的相應(查看章節(jié)5.3.2)。該標識為設值這激活處理器對硬件中斷屏蔽的響應,清零這阻止硬件中斷屏蔽。IF標識不影響非硬件中斷(NMI)和異常。CR4寄存器里的VME標識,和CPL,IPOL一起決定指令CLI,STI,POPF,POPFD,IRET是否能修改IF標識的值。

 

 

IOPL I/O privilege level field (bits 12 and 13) — Indicates the I/O privilege

level (IOPL) of the currently running program or task. The CPL of the

currently running program or task must be less than or equal to the IOPL to

access the I/O address space. This field can only be modified by the POPF

and IRET instructions when operating at a CPL of 0.

The IOPL is also one of the mechanisms that controls the modification of the

IF flag and the handling of interrupts in virtual-8086 mode when virtual

mode extensions are in effect (when CR4.VME = 1). See also: Chapter 13,

 “Input/Output,” in the Intel® 64 and IA-32 Architectures Software Developer’s

Manual, Volume 1.

I

I/O權限等級快(位12和位13):這兩個位表明了當前運行的程序或任務的I/O權限等級。當前程序或任務的處理器權限等級(CPL)一定要比前程序或任務要訪問的I/O地址空間的I/O權限等級要低。只有指令OPPFIRET在處理器權限等級0的狀態(tài)下才能修改這塊的數(shù)值。查看章節(jié)13.

 

 

NT Nested task (bit 14) — Controls the chaining of interrupted and called

tasks. The processor sets this flag on calls to a task initiated with a CALL

instruction, an interrupt, or an exception. It examines and modifies this flag

on returns from a task initiated with the IRET instruction. The flag can be

explicitly set or cleared with the POPF/POPFD instructions; however,

changing to the state of this flag can generate unexpected exceptions in

application programs.

See also: Section 6.4, “Task Linking.”

NT內嵌任務(位14):控制被中斷任務和被調用任務的鏈。當通過指令CALL,中斷,或是異常調用任務時,處理器就會設置該標識的值。當一個任務通過IRET指令返回時,處理器會檢查和修改該標識的值。雖然可以通過POPF/IRET指令來設置或清零該標識的值,但改變這個標識的狀態(tài)可能會引發(fā)一些程序的意外的異常。

 

 

RF Resume (bit 16) — Controls the processor’s response to instruction-breakpoint

conditions. When set, this flag temporarily disables debug exceptions

(#DB) from being generated for instruction breakpoints (although other

exception conditions can cause an exception to be generated). When clear,

instruction breakpoints will generate debug exceptions.

The primary function of the RF flag is to allow the restarting of an instruction

following a debug exception that was caused by an instruction breakpoint

condition. Here, debug software must set this flag in the EFLAGS image on

the stack just prior to returning to the interrupted program with IRETD (to

prevent the instruction breakpoint from causing another debug exception).

The processor then automatically clears this flag after the instruction

returned to has been successfully executed, enabling instruction breakpoint

faults again.

See also: Section 18.3.1.1, “Instruction-Breakpoint Exception Condition.”

RF(重設)(位16):該標識控制處理器對指令的斷點情況的響應。該標識設值就會暫時禁止指令斷點產(chǎn)生調試異常(雖然其他的異常會誘發(fā)產(chǎn)生一個異常);清零的時候,激活指令斷點產(chǎn)生調試異常。指令斷點狀態(tài)產(chǎn)生的異常,可以在調試異常后的第一條指令,通過RF標識的函數(shù)重新誘發(fā)。調試中的程序必須在程序因為IRETD而中斷返回之前,設置棧里的EFLAGS寄存器鏡像的RF標識(防止指令斷點引發(fā)另外一個調試異常)。處理器會在返回指令成功執(zhí)行后,自動清零該標識,并且重新激活指令錯誤。

 

 

 

VM Virtual-8086 mode (bit 17) — Set to enable virtual-8086 mode; clear to

return to protected mode.

See also: Section 15.2.1, “Enabling Virtual-8086 Mode.”

VM 虛擬8086模式(位17):設值則激活虛擬8086模式,清零則返回保護模式。查看章節(jié)15.2.1.

 

AC Alignment check (bit 18) — Set this flag and the AM flag in control register

CR0 to enable alignment checking of memory references; clear the AC flag

and/or the AM flag to disable alignment checking. An alignment-check

exception is generated when reference is made to an unaligned operand,

such as a word at an odd byte address or a doubleword at an address which

is not an integral multiple of four. Alignment-check exceptions are generated

only in user mode (privilege level 3). Memory references that default to privilege

level 0, such as segment descriptor loads, do not generate this exception

even when caused by instructions executed in user-mode.

The alignment-check exception can be used to check alignment of data. This

is useful when exchanging data with processors which require all data to be

aligned. The alignment-check exception can also be used by interpreters to

flag some pointers as special by misaligning the pointer. This eliminates

overhead of checking each pointer and only handles the special pointer when

used.

AC 數(shù)據(jù)對齊檢查(位18 通過設置CR0控制寄存器中的該標識和AM標識,可以激活內存引用的數(shù)據(jù)對齊檢查,清零該標識(AM清零不是必須的)則禁止數(shù)據(jù)對齊檢查。當內存引用的數(shù)據(jù)是由無法直接構成對齊的操作數(shù)組成的時候,一個數(shù)據(jù)對齊異常便會產(chǎn)生,比如零碎地址上的一個字,或者不是四的倍數(shù)的地址上的一個雙字。數(shù)據(jù)對齊異常只會在用戶模式(等級3)下產(chǎn)生。因為用戶模式下的指令執(zhí)行而導致的,類似段描述符導入等在等級0上的內存數(shù)據(jù)引用,是不會誘發(fā)數(shù)據(jù)對齊異常的。

數(shù)據(jù)對齊異常可以用于檢查數(shù)據(jù)的對齊。因為處理器要求所有數(shù)據(jù)必須對齊,因此,在和處理器交換數(shù)據(jù)時,進行數(shù)據(jù)對齊的檢查,是非常有用的。在解釋程序標明一些特殊的指針,比如調整指針的位置時,通過使用數(shù)據(jù)對齊異常,可以不必對每個指針進行過度的檢查,只需處理正在使用的特殊指針。??

 

VIF Virtual Interrupt (bit 19) — Contains a virtual image of the IF flag. This

flag is used in conjunction with the VIP flag. The processor only recognizes

the VIF flag when either the VME flag or the PVI flag in control register CR4 is

set and the IOPL is less than 3. (The VME flag enables the virtual-8086 mode

extensions; the PVI flag enables the protected-mode virtual interrupts.)

See also: Section 15.3.3.5, “Method 6: Software Interrupt Handling,” and

Section 15.4, “Protected-Mode Virtual Interrupts.”

VIF 虛擬終端(位19 :包含了IF標識的一個虛擬鏡像。VIF標識和VME標識一起使用。只有當IOPL的權限等級小于3,并且CR4控制寄存器里的整個VME標識或者整個PVI標識被設值,處理器才會識別VIF標識。(VME標識激活虛擬8086模式的擴展特性;PVI標識激活保護模式的虛擬終端)。度章節(jié)15.3.3.5.

 

 

 

VIP Virtual interrupt pending (bit 20) — Set by software to indicate that an

interrupt is pending; cleared to indicate that no interrupt is pending. This flag

is used in conjunction with the VIF flag. The processor reads this flag but

never modifies it. The processor only recognizes the VIP flag when either the

VME flag or the PVI flag in control register CR4 is set and the IOPL is less than

3. The VME flag enables the virtual-8086 mode extensions; the PVI flag

enables the protected-mode virtual interrupts.

VIP  虛擬中斷等待(位20): 該標識表明一個中斷被等待,且該位是通過程序來設值得。清零表明無中斷被等待。該標識和VIF標識一起使用。處理會讀取該標識但從來不修改標識的值。只有IOPL等級小于3,并且CR4控制寄存器里的VME標識或者PVI標識被設值,處理器才會識別該標識。VME標識激活虛擬8086的擴展特性,PVI標識激活保護模式的虛擬終端。

 

 

ID Identification (bit 21). — The ability of a program or procedure to set or

clear this flag indicates support for the CPUID instruction.

ID 身份驗證(21) 程序可以對該標識設值或者清零。該標識用以表明對CPUID指令的支持。

 

2.3.1 System Flags and Fields in IA-32e ModeIA32E模式的系統(tǒng)標識和系統(tǒng)標識塊)

In 64-bit mode, the RFLAGS register expands to 64 bits with the upper 32 bits

reserved. System flags in RFLAGS (64-bit mode) or EFLAGS (compatibility mode)

are shown in Figure 2-4.

64模式下,EFLAGS寄存器擴展至64位,而高32位是保留的。EFLAGS寄存器里的系統(tǒng)標識如圖2.4所示。

 

 

In IA-32e mode, the processor does not allow the VM bit to be set because virtual-

8086 mode is not supported (attempts to set the bit are ignored). Also, the processor

will not set the NT bit. The processor does, however, allow software to set the NT bit

(note that an IRET causes a general protection fault in IA-32e mode if the NT bit is

set).

虛擬8086模式不支持VM標識,故在IA32E模式下,處理器不允許設置VM標識(即使設置也會被忽略)。

同樣,處理器也不設置NT.但是允許軟件設置NT位(如果NT被設值,IRET會誘發(fā)一個保護錯誤)

 

 

In IA-32e mode, the SYSCALL/SYSRET instructions have a programmable method of

specifying which bits are cleared in RFLAGS/EFLAGS. These instructions save/restore

EFLAGS/RFLAGS.

IA32E模式下,指令SYSCALL/SYSRET都有一個可編程的方法來識別RFLAGS/EFLAGS寄存器里的那些位被清零了。這些指令可以保存/重新保存EFLAGS/RFLAGS的值。

 

 

2.4 MEMORY-MANAGEMENT REGISTERS內存管理寄存器

The processor provides four memory-management registers (GDTR, LDTR, IDTR,

and TR) that specify the locations of the data structures which control segmented

memory management (see Figure 2-5). Special instructions are provided for loading

and storing these registers.

處理器提供了四個內存管理寄存器(GDTR,LDTR,IDTR,TR,這些寄存器用于查詢控制分段內存管理的數(shù)據(jù)結構的位置。(看圖2-5)一些特別的指令用于導入和保存這些寄存器的值。

2.4.1 Global Descriptor Table Register (GDTR)全局描述符符表寄存器

The GDTR register holds the base address (32 bits in protected mode; 64 bits in

IA-32e mode) and the 16-bit table limit for the GDT. The base address specifies the

linear address of byte 0 of the GDT; the table limit specifies the number of bytes in

the table.

全局描述符表寄存器由基地址(保護模式為32位,IA32E64位),16位表長限制組成。基地址指明GDT的第0個字節(jié)的線性地址;表長限制指明表里的字節(jié)數(shù)目。

 

 

The LGDT and SGDT instructions load and store the GDTR register, respectively. On

power up or reset of the processor, the base address is set to the default value of 0

and the limit is set to 0FFFFH. A new base address must be loaded into the GDTR as

part of the processor initialization process for protected-mode operation.

See also: Section 3.5.1, “Segment Descriptor Tables.”

指令LGDTSGDT用以導入和保存GDTR寄存器。當電源接通或者處理重啟時,GDT的基地值設置成默認值0,而表長限制被設置成OFFFFH。保護模式下,作為處理器初始化進程的一部分,GDTR的新地址必須被導入。

 

 

2.4.2 Local Descriptor Table Register (LDTR)局部描述符表寄存器

The LDTR register holds the 16-bit segment selector, base address (32 bits in

protected mode; 64 bits in IA-32e mode), segment limit, and descriptor attributes

for the LDT. The base address specifies the linear address of byte 0 of the LDT

segment; the segment limit specifies the number of bytes in the segment. See also:

Section 3.5.1, “Segment Descriptor Tables.”

LDTR寄存器由16段選擇器,基地址(保護模式為32位,IA32E模式為64位),段長限制,以及LDT的描述符屬性組成。基地值知名LDT的第0字節(jié)的線性地址。段長限制知名段的字節(jié)數(shù)目;

 

 

The LLDT and SLDT instructions load and store the segment selector part of the LDTR

register, respectively. The segment that contains the LDT must have a segment

descriptor in the GDT. When the LLDT instruction loads a segment selector in the

LDTR: the base address, limit, and descriptor attributes from the LDT descriptor are

automatically loaded in the LDTR.

指令LLDTSLDT用于導入和保存LDTR的段選擇器部分。包含LDT的段用于一個在GDT里的段描述符。當LLDT指令導入LDTR里的段選擇器的時候,基地址,段長顯示,描述符屬性會給自動導入到LDTR里。

 

 

When a task switch occurs, the LDTR is automatically loaded with the segment

selector and descriptor for the LDT for the new task. The contents of the LDTR are not

automatically saved prior to writing the new LDT information into the register.

On power up or reset of the processor, the segment selector and base address are set

to the default value of 0 and the limit is set to 0FFFFH.

發(fā)生任務切換時,新任務的LDT里的段選擇器,描述符自動導入LDTR里。在將新的LDT信息寫入到寄存器之前,LDTR里的內容不會自動保存。電源接通或者處理器重啟,選擇器和基地址被設置成默認值0,段長限制被設置成0FFFFH

 

 

2.4.3 IDTR Interrupt Descriptor Table Register IDTR中斷描述符表寄存器

The IDTR register holds the base address (32 bits in protected mode; 64 bits in

IA-32e mode) and 16-bit table limit for the IDT. The base address specifies the linear

address of byte 0 of the IDT; the table limit specifies the number of bytes in the table.

The LIDT and SIDT instructions load and store the IDTR register, respectively. On

power up or reset of the processor, the base address is set to the default value of 0

and the limit is set to 0FFFFH. The base address and limit in the register can then be

changed as part of the processor initialization process.

See also: Section 5.10, “Interrupt Descriptor Table (IDT).”

IDTR寄存器由基地址(保護模式為32位,IA32E模式為64位),16IDT表長限制組成。基地址知名IDT的第0個字節(jié)的線性地址。表長限制指明表的字節(jié)數(shù)目。指令LIDTSIDT分別用于導入和保存IDTR寄存器里的值。電源接通或者處理器重啟時,基地址被設置成默認值0,段長限制被設置成0FFFFH。處理器初始化進程時,作為初始化的一部分,寄存器里的基地址和段長顯示可以發(fā)生變化。

 

 

2.4.4 Task Register (TR) 任務寄存器

The task register holds the 16-bit segment selector, base address (32 bits in

protected mode; 64 bits in IA-32e mode), segment limit, and descriptor attributes

for the TSS of the current task. The selector references the TSS descriptor in the GDT.

The base address specifies the linear address of byte 0 of the TSS; the segment limit

specifies the number of bytes in the TSS. See also: Section 6.2.4, “Task Register.”

The LTR and STR instructions load and store the segment selector part of the task

register, respectively. When the LTR instruction loads a segment selector in the task

register, the base address, limit, and descriptor attributes from the TSS descriptor

are automatically loaded into the task register. On power up or reset of the processor,

the base address is set to the default value of 0 and the limit is set to 0FFFFH.

When a task switch occurs, the task register is automatically loaded with the

segment selector and descriptor for the TSS for the new task. The contents of the

task register are not automatically saved prior to writing the new TSS information

into the register.

任務寄存器由16位段選擇器,基地址(保護模式為32位,IA32E模式為64位),段長限制,以及當前任務的任務狀態(tài)段的段描述符屬性組成。選擇器指向GDT里的任務狀態(tài)段的描述符。基地址指明任務狀態(tài)段的第0個字節(jié)的線性地址。

指令LTRSTR分別用于導入和保存任務寄存器里的段選擇器部分。使用LTR指令導入任務寄存器的段選擇器的時候,TSS描述符的屬性,基地址,段長顯示會被自動導入。電源接通或處理器重啟時,基地址被設置成默認值0,段長限制被設置成0FFFFH。發(fā)生任務切換時,新任務的任務狀態(tài)段的段選擇器和描述符會被自動導入到TR寄存器中。在新任務的TSS信息導入到寄存器之前,TR寄存器里面的內容不會被自動保存。

posted on 2009-09-22 23:59 ChinaPanda 閱讀(806) 評論(0)  編輯 收藏 引用 所屬分類: Os

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美午夜视频网站| 一本不卡影院| 欧美高清视频一区二区| 久久久久免费| 免费日本视频一区| 欧美国产免费| 国产精品日韩精品欧美精品| 国产精品亚发布| 一区在线视频观看| 亚洲欧洲一区二区三区久久| 99精品国产一区二区青青牛奶| 亚洲一区二区三区四区五区午夜| 亚洲欧美综合一区| 久久久久久久久伊人| 另类图片综合电影| 亚洲毛片网站| 欧美在线黄色| 欧美日韩精品一区二区天天拍小说| 国产精品女人网站| 亚洲国产美女精品久久久久∴| 中日韩视频在线观看| 久久久亚洲欧洲日产国码αv| 亚洲国产高清aⅴ视频| 免费在线观看精品| 一二三区精品| 国产综合色产| 欧美一区二区三区四区高清| 欧美一级在线亚洲天堂| 欧美成人高清| 国产情人节一区| 亚洲区中文字幕| 久久精品99无色码中文字幕| 亚洲国产精品女人久久久| 亚洲一区二区免费在线| 欧美不卡在线| 国产亚洲精品自拍| 这里只有视频精品| 欧美第一黄网免费网站| 午夜精品免费视频| 欧美视频在线观看| 亚洲每日更新| 欧美成人情趣视频| 久久久久久97三级| 国产一区二区成人久久免费影院| 在线一区二区三区四区五区| 免费不卡视频| 久久久久国产一区二区三区四区| 国产伦精品一区二区三区高清版| 中日韩在线视频| 亚洲精品四区| 欧美激情一区二区三级高清视频| 一区二区在线观看视频| 久久精品一区二区三区不卡牛牛 | 欧美国产日本| 欧美中文在线字幕| 国产亚洲福利社区一区| 亚洲欧美国产77777| 一区二区三区高清不卡| 欧美色区777第一页| 亚洲视频每日更新| 一区二区三区国产精华| 欧美性片在线观看| 中文在线一区| 中文在线资源观看网站视频免费不卡| 欧美日韩色婷婷| 亚洲香蕉伊综合在人在线视看| 日韩视频在线一区| 国产精品极品美女粉嫩高清在线| 亚洲欧美精品中文字幕在线| 亚洲欧美激情视频在线观看一区二区三区 | 久久人人看视频| 亚洲国产精品福利| 亚洲国产一区二区三区在线播| 欧美1区2区| 中文欧美字幕免费| 亚洲欧美精品| 在线欧美不卡| 亚洲另类黄色| 国产精品实拍| 国产伦精品一区二区三区在线观看 | 农村妇女精品| 99精品国产在热久久下载| 一区二区欧美国产| 国产亚洲欧美一区在线观看 | 欧美国产1区2区| 欧美日本国产在线| 欧美一区二区| 久久综合网色—综合色88| 亚洲精品网站在线播放gif| 99re6这里只有精品视频在线观看| 国产精品久久久久久影视 | 免费日韩av电影| 欧美日韩国产高清| 欧美自拍偷拍| 欧美国产日韩精品| 性色av一区二区三区红粉影视| 欧美一区亚洲| 在线性视频日韩欧美| 久久精品国产77777蜜臀| 亚洲人成绝费网站色www| 亚洲一区精彩视频| 亚洲片在线观看| 亚洲欧美日韩视频二区| 在线看片第一页欧美| 91久久精品日日躁夜夜躁国产| 国产精品久久久久久久9999| 免费中文日韩| 国产精品久久久久秋霞鲁丝| 亚洲第一中文字幕| 国产在线不卡视频| 亚洲校园激情| 亚洲婷婷综合色高清在线| 免费一级欧美片在线播放| 久久福利影视| 国产精品国产三级国产| 亚洲精品国产精品国产自| 在线观看福利一区| 欧美一级成年大片在线观看| 亚洲综合精品四区| 欧美女人交a| 亚洲国产欧洲综合997久久| 伊人久久噜噜噜躁狠狠躁| 中文成人激情娱乐网| 一本高清dvd不卡在线观看| 久热国产精品视频| 久久久久久久波多野高潮日日| 国产精品一区二区三区久久久| 99国产精品国产精品久久| 亚洲看片网站| 欧美成人免费在线视频| 免费影视亚洲| 亚洲人成网站777色婷婷| 久久综合九色欧美综合狠狠| 久久综合狠狠综合久久综青草| 国产亚洲va综合人人澡精品| 亚洲欧美国产另类| 久久精品国产久精国产爱| 国模套图日韩精品一区二区| 国产日韩欧美高清| 亚洲在线第一页| 欧美一区永久视频免费观看| 国产精品亚洲美女av网站| 亚洲午夜在线| 欧美一级电影久久| 国产精品制服诱惑| 午夜在线精品偷拍| 久久久99国产精品免费| 国产主播在线一区| 欧美一区二区视频在线| 久久夜色精品国产噜噜av| 国产欧美日韩不卡免费| 亚洲综合色丁香婷婷六月图片| 欧美一区二区在线视频| 韩国一区二区三区在线观看| 久久精品99无色码中文字幕 | 欧美视频不卡| 欧美伊人久久大香线蕉综合69| 免播放器亚洲一区| 亚洲老板91色精品久久| 午夜精品理论片| 黄色精品在线看| 欧美成人一区在线| 亚洲视频 欧洲视频| 欧美在线视频一区二区| 在线电影院国产精品| 欧美日韩一区二区精品| 亚洲欧美在线一区二区| 欧美成人国产一区二区| 亚洲图片你懂的| 黄色精品一区二区| 欧美日韩一区二区三区在线看| 亚洲欧美国产另类| 最近中文字幕日韩精品| 亚洲欧美日韩国产一区二区三区| 国产精品免费aⅴ片在线观看| 久久久久久久久久久久久久一区 | 六月婷婷一区| 亚洲一二三区精品| 欧美激情视频免费观看| 亚洲综合99| 亚洲欧洲一区二区三区| 国产精品一区二区久久久久| 欧美电影在线观看| 欧美成年人视频网站| 亚洲欧美国产日韩天堂区| 尤妮丝一区二区裸体视频| 国产精品爱久久久久久久| 美日韩精品免费观看视频| 亚洲——在线| 亚洲理论在线观看| 亚洲国产精品99久久久久久久久| 香蕉乱码成人久久天堂爱免费| 1024日韩| 国模叶桐国产精品一区| 国产精品久久久久久久久久久久 | 欧美国产日韩视频| 久久久国产一区二区| 亚洲黄色免费电影| 亚洲主播在线观看| 日韩香蕉视频|