日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

bilibili深入理解计算机系统笔记(2):第一次代码重构,汇编模拟器,递归,指令周期实现。

發布時間:2025/4/5 windows 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bilibili深入理解计算机系统笔记(2):第一次代码重构,汇编模拟器,递归,指令周期实现。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 深入理解計算機系統筆記(2)
    • 第一次代碼重構
      • 可變參數輸出print函數
      • bitmap學習
      • P10 有限自動機
      • 指令周期
      • 遞歸求和函數c語言和匯編語言
      • 回調函數的實現
        • call和ret指令的實現
        • add函數設置標志位
        • sub函數設置標志位
        • cmp函數設置標志位
        • jne指令
        • jmp指令實現
        • leave指令實現邏輯
      • add函數的匯編模擬器
      • 遞歸調用的匯編模擬器

深入理解計算機系統筆記(2)

由bilibili網站上up主yaaagmin的視頻學習整理而來:深入理解計算機系統合集(周更中)

筆者的github repo:https://github.com/shizhengLi/csapp_bilibili
本筆記對應commit版本:commit

這篇博客記錄的是

  • 匯編模擬器的實現:遞歸函數
  • 指令周期的實現

圖片來源:yaaangmin

匯編模擬器實現結果圖:

遞歸函數(recursive call),c代碼如下:

#include <stdint.h> uint64_t sum(uint64_t n) {if (n == 0){return 0;}else{return n + sum(n - 1);} }int main() {uint64_t a = sum(3);return 0; }

對應的匯編模擬器輸出:

第一次代碼重構

可變參數輸出print函數

功能:通過一些bitmap來設置打印哪些模塊,如stack、register或者linker等,打印它們的值。這樣做的好處是,不同的模塊調用相同的printf函數,提高代碼復用,方便debug。

// ./src/common/print.c#include<stdarg.h> // 主要用于可變參數函數 #include<stdio.h> #include<assert.h> #include<headers/common.h>// wrapper of stdio printf // wrapper封裝的意思 // controlled by the debug verbose bit set // open_set: 指明哪些模塊需要調用printf函數 uint64_t debug_printf(uint64_t open_set, const char *format, ...) // 可變參數函數 {if ((open_set & DEBUG_VERBOSE_SET) == 0x0){return 0x1;}// implementation of std printf()va_list argptr;va_start(argptr, format); // 初始化argptr變量vfprintf(stderr, format, argptr); // 輸出到stderr中va_end(argptr); // 允許使用了va_start的可變參數函數返回,這里是vfprintf函數return 0x0; }

stdarg.h標準庫

stdarg.h是C語言中C標準庫的頭文件,stdarg是由standard(標準) arguments(參數)簡化而來,主要目的為讓函數能夠接收不定量參數。

不定參數函數(Variadic functions)是stdarg.h內容典型的應用,雖然也可以使用在其他由不定參數函數調用的函數(例如,vprintf)。

來源:stdarg.h

變量類型

va_list:這是一個適用于 va_start()va_arg()va_end() 這三個宏存儲信息的類型。

庫宏

void va_start(va_list ap, last_arg) // 這個宏初始化 ap 變量,它與 va_arg 和 va_end 宏是一起使用的。last_arg 是最后一個傳遞給函數的已知的固定參數,即省略號之前的參數。type va_arg(va_list ap, type) // 這個宏檢索函數參數列表中類型為 type 的下一個參數。void va_end(va_list ap) // 這個宏允許使用了 va_start 宏的帶有可變參數的函數返回。如果在從函數返回之前沒有調用 va_end,則結果為未定義。

另外關于vfprintf函數:根據參數列表將格式化輸出寫入到s中。

/* Write formatted output to S from argument list ARG.This function is a possible cancellation point and therefore notmarked with __THROW. */ extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,__gnuc_va_list __arg);

補充:bitmap是bit manipulation的簡寫,是通過bit來控制一些流程。

bitmap學習

通過一些宏定義,來調用同一封裝函數print(可變參數函數),提高代碼復用。

通過一個DEBUG_VERBOSE_SET(廢話程度)宏,來控制對哪個模塊的debug輸出。

// 通過或運算(|)來打開不同的模塊: // 這里是打開DEBUG_INSTRUCTIONCYCLE,DEBUG_REGISTERS和DEBUG_LINKER的debug開關 #define DEBUG_VERBOSE_SET 0X1 | 0x2 | 0x40

具體debug宏定義如下:

#ifndef DEBUG_GUARD #define DEBUG_GUARD#include <stdint.h>#define DEBUG_INSTRUCTIONCYCLE 0x1 // 指令周期debug開關 #define DEBUG_REGISTERS 0x2 // 寄存器dubug開關 #define DEBUG_PRINTSTACK 0x4 // 棧debug開關 #define DEBUG_PRINTCACHESET 0x8 #define DEBUG_CACHEDETAILS 0x10 #define DEBUG_MMU 0x20 #define DEBUG_LINKER 0x40 #define DEBUG_LOADER 0x80 #define DEBUG_PARSEINST 0x100// vorbose set 是廢話程度,通過一個宏來控制哪些模塊的打印輸出 #define DEBUG_VERBOSE_SET 0X1 // do page walk #define DEBUG_ENABLE_PAGE_WALK 0// user sram cache for memory access #define DEBUG_ENABLE_SRAM_CACHE 0// print wrapper print的封裝 // open_set 填寫需要debug的宏 uint64_t dubug_printf(uint64_t open_set, const char *format, ...);#endif

P10 有限自動機

解析字符串的狀態機分析圖:

小括號:parenthesis

指令周期

目前為止,我們模擬了下圖中藍色框內的部分:指令周期的流程,這里采用的是定長指令集格式,每條指令長度為64 * sizeof(char)(這里是用字符數組的)。

圖片來源:yaaangmin

指令周期執行過程

第一步:取指。根據rip寄存器從內存中取出指令。

第二步:譯碼。解析指令字符串,通過線性掃描(不會退)解析出(操作碼,源操作數,目的操作數),即(op, src, dst)。保存在inst_t結構中。

其中,指令結構inst_t定義如下

typedef struct INST_STRUCT {op_t op; // enum of operators. e.g. mov, call, etc.od_t src; // operand src of instructionod_t dst; // operand dst of instruction } inst_t;

第三步:執行指令。這步具體是如何工作的呢?根據指令類型op,去查函數指針表,找到合適的回調函數。這里會涉及訪存,寫寄存器,設置條件碼等工作。

第四步:根據rip繼續選擇指令執行。下一條指令地址rip的設置可能來源于call,jmp/jne, next_rip等。

補充:代碼段(.text)的起始地址是0x00400000

指令周期代碼

// instruction cycle is implemented in CPU // the only exposed interface outside CPU void instruction_cycle(core_t *cr) {// FETCH: get the instruction string by program counter// const char *inst_str = (const char *)cr->rip; // 虛擬地址解釋為字符串指針char inst_str[MAX_INSTRUCTION_CHAR + 10]; // 數組大小 +10 是防止字符數組溢出readinst_dram(va2pa(cr->rip, cr), inst_str, cr); // 根據rip從內存取指,存入inst_str中debug_printf(DEBUG_INSTRUCTIONCYCLE, "%lx %s\n", cr->rip, inst_str);// DECODE: decode the run-time instruction operandsinst_t inst;parse_instruction(inst_str, &inst, cr); // 解析inst_str指向字符串,解析的值傳給inst結構// EXECUTE: get the function pointer or handler by the operatorhandler_t handler = handler_table[inst.op];// update CPU and memory according the instructionhandler(&(inst.src), &(inst.dst), cr); }

更新cpu的標志位定義

使用結構體來定義CPU_FLAGS_STRUCT。其中,使用union結構共享內存:讓__cpu_flag_values(64 bit)和四個標志位共享內存(16 bit exlusively)。這樣初始化4個標志位的時候,直接__cpu_flag_values =0即可。代替CF = 0, ZF = 0, SF = 0, OF = 0。

typedef struct CPU_FLAGS_STRUCT {union{uint64_t __cpu_flag_values;struct {// carry flag: detect overflow for unsigned operationsuint16_t CF;// zero flag: result is zerouint16_t ZF;// sign flag: result is negative: highest bituint16_t SF;// overflow flag: detect overflow for signed operationsuint16_t OF;}; }; } cpu_flag_t;

指令解析完成,使用字符串的形式把(P1~P9)的工作又做了一遍。

遞歸求和函數c語言和匯編語言

遞歸求和的c語言代碼

#include <stdint.h> uint64_t sum(uint64_t n) {if (n == 0){return 0;}else{return n + sum(n - 1);} }int main() {uint64_t a = sum(3);return 0; }

對應的匯編指令

char assembly[19][MAX_INSTRUCTION_CHAR] = {"push %rbp", // 0"mov %rsp,%rbp", // 1"sub $0x10,%rsp", // 2"mov %rdi,-0x8(%rbp)", // 3"cmpq $0x0,-0x8(%rbp)", // 4"jne 0x400200", // 5: jump to 8"mov $0x0,%eax", // 6"jmp 0x400380", // 7: jump to 14"mov -0x8(%rbp),%rax", // 8"sub $0x1,%rax", // 9"mov %rax,%rdi", // 10"callq 0x00400000", // 11"mov -0x8(%rbp),%rdx", // 12"add %rdx,%rax", // 13"leaveq ", // 14"retq ", // 15"mov $0x3,%edi", // 16:starting point"callq 0x00400000", // 17:jump to 0 調用sum函數"mov %rax,-0x8(%rbp)", // 18: last execute};

c語言斷言assert的使用

ASSERT() 是一個調試程序時經常使用的宏,在程序運行時它計算括號內的表達式,如果表達式為 FALSE (0), 程序將報告錯誤,并終止執行。如果表達式不為 0,則繼續執行后面的語句。這個宏通常原來判斷程序中是否出現了明顯非法的數據,如果出現了終止程序以免導致嚴重后果,同時也便于查找錯誤。

ASSERT 只有在 Debug 版本中才有效,如果編譯為 Release 版本則被忽略

來源:菜鳥教程

現在開始條件碼(conditon codes)部分的代碼

回調函數的實現

call和ret指令的實現

原理:主要是rip寄存器和rsp寄存器的改變。

call指令

第一步:rsp指向下一個空的格,即向下減8。

(cr->reg).rsp = (cr->reg).rsp - 8;

第二步:下一條指令地址存入新的rsp中。

write64bits_dram( // 下一條指令寫入rsp中va2pa((cr->reg).rsp, cr),cr->rip + sizeof(char) * MAX_INSTRUCTION_CHAR,cr);

第三步:rip指向被調函數的地址。

// jump to target function addresscr->rip = src;

第四步:call指令會使得標志位清零。

call指令的回調函數代碼如下:

static void call_handler(od_t *src_od, od_t *dst_od, core_t *cr) {uint64_t src = decode_operand(src_od);// uint64_t dst = decode_operand(dst_od);// src: immediate number: virtual address of target function starting// dst: empty// push the return value(cr->reg).rsp = (cr->reg).rsp - 8;write64bits_dram( // 下一條指令寫入rsp中va2pa((cr->reg).rsp, cr),cr->rip + sizeof(char) * MAX_INSTRUCTION_CHAR,cr);// jump to target function addresscr->rip = src; reset_cflags(cr); }

ret指令

第一步:取出rsp中的返回地址。

uint64_t ret_addr = read64bits_dram( // 取出rsp中的返回地址va2pa((cr->reg).rsp, cr),cr);

第二步:rsp向上恢復一格,即加8。

(cr->reg).rsp = (cr->reg).rsp + 8;

第三步:rip指向返回地址。

// jump to return addresscr->rip = ret_addr;

ret指令的回調函數代碼如下:

static void ret_handler(od_t *src_od, od_t *dst_od, core_t *cr) {// uint64_t src = decode_operand(src_od);// uint64_t dst = decode_operand(dst_od);// src: empty// dst: empty// pop rspuint64_t ret_addr = read64bits_dram( // 取出rsp中的返回地址va2pa((cr->reg).rsp, cr),cr);(cr->reg).rsp = (cr->reg).rsp + 8;// jump to return addresscr->rip = ret_addr;reset_cflags(cr); }

add函數設置標志位

加法有符號溢出的判斷:!(src_sign ^ dst_sign)&&(src_sign ^ val_sign):根據src + dst = val 三個數的標志位來確定有符號數溢出。

static void add_handler(od_t *src_od, od_t *dst_od, core_t *cr) {uint64_t src = decode_operand(src_od);uint64_t dst = decode_operand(dst_od);if (src_od->type == REG && dst_od->type == REG){// src: register (value: int64_t bit map)// dst: register (value: int64_t bit map)uint64_t val = *(uint64_t *)dst + *(uint64_t *)src;int val_sign = ((val >> 63) & 0x1);int src_sign = ((src >> 63) & 0x1);int dst_sign = ((dst >> 63) & 0x1);// set condition flagscr->flags.CF = (val < *((uint64_t *)src)); // unsignedcr->flags.SF = ((val >> 63) & 0x1);cr->flags.OF = (src_sign == 0 && dst_sign == 0 && val_sign == 1) || (src_sign == 1 && dst_sign == 1 && val_sign == 0); // signedcr->flags.ZF = (val == 0);// update registers*(uint64_t *)dst = val;// signed and unsigned value follow the same addition. e.g.// 5 = 0000000000000101, 3 = 0000000000000011, -3 = 1111111111111101, 5 + (-3) = 0000000000000010next_rip(cr);return;} }

sub函數設置標志位

static void sub_handler(od_t *src_od, od_t *dst_od, core_t *cr) {uint64_t src = decode_operand(src_od);uint64_t dst = decode_operand(dst_od);if (src_od->type == IMM && dst_od->type == REG){// src: register (value: int64_t bit map)// dst: register (value: int64_t bit map)// dst = dst - src = dst + (-src)uint64_t neg_src = ~src + 1;uint64_t val = *(uint64_t *)dst + neg_src;int val_sign = ((val >> 63) & 0x1);int src_sign = ((src >> 63) & 0x1);int dst_sign = ((dst >> 63) & 0x1);// set condition flagscr->flags.CF = (val > *(uint64_t *)dst); // unsignedcr->flags.SF = val_sign;cr->flags.OF = (dst_sign == 0 && src_sign == 1 && val_sign == 1) ||(dst_sign == 1 && src_sign == 0 && val_sign == 0); // signedcr->flags.ZF = (val == 0);// update registers*(uint64_t *)dst = val;next_rip(cr);return;} }

cmp函數設置標志位

根據下圖:我們發現,cmp指令的實現邏輯就是sub(S2-S1),可以借鑒sub指令實現過程。

static void cmp_handler(od_t *src_od, od_t *dst_od, core_t *cr) {uint64_t src = decode_operand(src_od);uint64_t dst = decode_operand(dst_od); // 虛擬地址if (src_od->type == IMM && dst_od->type >= MEM_IMM) // cmpq imm,memory{// src: register (value: int64_t bit map)// dst: register (value: int64_t bit map)// dst = dst - src = dst + (-src)uint64_t neg_src = ~src + 1;uint64_t dst_val = read64bits_dram(va2pa(dst, cr), cr);uint64_t val = dst_val + neg_src;int val_sign = ((val >> 63) & 0x1);int src_sign = ((src >> 63) & 0x1);int dst_sign = ((dst_val >> 63) & 0x1);// set condition flagscr->flags.CF = (val > dst_val); // unsignedcr->flags.SF = val_sign;cr->flags.OF = (dst_sign == 0 && src_sign == 1 && val_sign == 1) ||(dst_sign == 1 && src_sign == 0 && val_sign == 0); // signedcr->flags.ZF = (val == 0);// signed and unsigned value follow the same addition. e.g.// 5 = 0000000000000101, 3 = 0000000000000011, -3 = 1111111111111101, 5 + (-3) = 0000000000000010next_rip(cr);return;} }

jne指令

該命令"jne 0x400200"后面跟的是立即數,

jne是根據上一條指令也就是cmp后面,其中cmp指令相當于sub指令,會設置各種標志位,jne會使用cmp設置的ZF標志位。

如果ZF == 0,說明cmp src, dst 這條指令中dst和src并不相等,此時jne會跳轉。因為,如果cmp src, dst 計算出來dst和src相等的話,會置 ZF == 1。

// jne: jump when not equal(zero) static void jne_handler(od_t *src_od, od_t *dst_od, core_t *cr) {uint64_t src = decode_operand(src_od);// src_od is actually an instruction memory address// but we are interpreting it as an immediate numberif (cr->flags.ZF == 0){// last instruction value != 0cr->rip = src;}else{// last instruction value == 0next_rip(cr);}cr->flags.__cpu_flag_values = 0; // 標志位重置 }

jmp指令實現

無條件跳轉到src

static void jmp_handler(od_t *src_od, od_t *dst_od, core_t *cr) {uint64_t src = decode_operand(src_od);cr->rip = src;cr->flags.__cpu_flag_values = 0; }

leave指令實現邏輯

leave movq %rbp, %rsp popq %rbp

static void leave_handler(od_t *src_od, od_t *dst_od, core_t *cr) {// mov %rbp, %rsp(cr->reg).rsp = (cr->reg).rbp;// popq %rbp// rbp 恢復到調用前的rbp,即恢復到上一個棧幀uint64_t old_val = read64bits_dram(va2pa((cr->reg).rsp, cr),cr);(cr->reg).rsp = (cr->reg).rsp + 8;(cr->reg).rbp = old_val;next_rip(cr);reset_cflags(cr);return; }

add函數的匯編模擬器

add函數的測試函數:

static void TestAddFunctionCallAndComputation() {ACTIVE_CORE = 0x0;core_t *ac = (core_t *)&cores[ACTIVE_CORE];// ... 省略char assembly[15][MAX_INSTRUCTION_CHAR] = { // 調用add函數的匯編過程"push %rbp", // 0"mov %rsp,%rbp", // 1"mov %rdi,-0x18(%rbp)", // 2"mov %rsi,-0x20(%rbp)", // 3"mov -0x18(%rbp),%rdx", // 4"mov -0x20(%rbp),%rax", // 5"add %rdx,%rax", // 6"mov %rax,-0x8(%rbp)", // 7"mov -0x8(%rbp),%rax", // 8"pop %rbp", // 9"retq", // 10"mov %rdx,%rsi", // 11"mov %rax,%rdi", // 12"callq 0x00400000", // 13"mov %rax,-0x8(%rbp)", // 14};// copy to physical memoryfor (int i = 0; i < 15; ++ i){writeinst_dram(va2pa(i * 0x40 + 0x00400000, ac), assembly[i], ac);// 0x40 是一條指令的大小}ac->rip = MAX_INSTRUCTION_CHAR * sizeof(char) * 11 + 0x00400000;printf("begin\n");int time = 0;while (time < 15){instruction_cycle(ac);print_register(ac);print_stack(ac);time ++;} // 省略... }

測試結果

begin 4002c0 mov %rdx,%rsi 400300 mov %rax,%rdi 400340 callq 0x00400000 400000 push %rbp 400040 mov %rsp,%rbp 400080 mov %rdi,-0x18(%rbp) 4000c0 mov %rsi,-0x20(%rbp) 400100 mov -0x18(%rbp),%rdx 400140 mov -0x20(%rbp),%rax 400180 add %rdx,%rax 4001c0 mov %rax,-0x8(%rbp) 400200 mov -0x8(%rbp),%rax 400240 pop %rbp 400280 retq 400380 mov %rax,-0x8(%rbp) register match memory match

遞歸調用的匯編模擬器

調用遞歸函數sum(3)的測試函數:

static void TestSumRecursiveCondition() {ACTIVE_CORE = 0x0;core_t *cr = (core_t *)&cores[ACTIVE_CORE];char assembly[19][MAX_INSTRUCTION_CHAR] = { // 調用sum函數的匯編主要過程"push %rbp", // 0"mov %rsp,%rbp", // 1"sub $0x10,%rsp", // 2"mov %rdi,-0x8(%rbp)", // 3"cmpq $0x0,-0x8(%rbp)", // 4"jne 0x400200", // 5: jump to 8"mov $0x0,%eax", // 6"jmp 0x400380", // 7: jump to 14"mov -0x8(%rbp),%rax", // 8"sub $0x1,%rax", // 9"mov %rax,%rdi", // 10"callq 0x00400000", // 11"mov -0x8(%rbp),%rdx", // 12"add %rdx,%rax", // 13"leaveq ", // 14"retq ", // 15"mov $0x3,%edi", // 16:starting point"callq 0x00400000", // 17:jump to 0"mov %rax,-0x8(%rbp)", // 18: last execute};// copy to physical memoryfor (int i = 0; i < 19; ++ i){writeinst_dram(va2pa(i * 0x40 + 0x00400000, cr), assembly[i], cr);// 0x40 是一條指令的大小}cr->rip = MAX_INSTRUCTION_CHAR * sizeof(char) * 16 + 0x00400000;printf("begin\n");int time = 0;while ((cr->rip <= 18 * 0x40 + 0x00400000) &&time < MAX_NUM_INSTRUCTION_CYCLE){instruction_cycle(cr);print_register(cr);print_stack(cr);time ++;} }

調用遞歸函數sum(3)測試結果:匯編遞歸的過程

azheng@lishizheng:/mnt/e/csapp_bilibili/ass_first_refactory$ make hardware begin 400400 mov $0x3,%edi 400440 callq 0x00400000 // 調用sum(3) 400000 push %rbp 400040 mov %rsp,%rbp 400080 sub $0x10,%rsp 4000c0 mov %rdi,-0x8(%rbp) // sum(n) n存在寄存器%rdi中,這里n = 3 400100 cmpq $0x0,-0x8(%rbp) // 比較 n == 0400140 jne 0x400200 // 不等,跳轉到0x400200 400200 mov -0x8(%rbp),%rax // 400240 sub $0x1,%rax // n = n - 1 = 3 - 1 = 2 400280 mov %rax,%rdi 4002c0 callq 0x00400000 // 調用sum(2) 400000 push %rbp 400040 mov %rsp,%rbp 400080 sub $0x10,%rsp 4000c0 mov %rdi,-0x8(%rbp) 400100 cmpq $0x0,-0x8(%rbp) // 比較 n == 0 ? 400140 jne 0x400200 // 不等,跳轉到0x400200 400200 mov -0x8(%rbp),%rax 400240 sub $0x1,%rax // n = n - 1 = 2 - 1 = 1 400280 mov %rax,%rdi 4002c0 callq 0x00400000 // 調用sum(1) 400000 push %rbp 400040 mov %rsp,%rbp 400080 sub $0x10,%rsp 4000c0 mov %rdi,-0x8(%rbp) 400100 cmpq $0x0,-0x8(%rbp) 400140 jne 0x400200 400200 mov -0x8(%rbp),%rax 400240 sub $0x1,%rax 400280 mov %rax,%rdi 4002c0 callq 0x00400000 // 調用sum(0) 400000 push %rbp 400040 mov %rsp,%rbp 400080 sub $0x10,%rsp 4000c0 mov %rdi,-0x8(%rbp) 400100 cmpq $0x0,-0x8(%rbp) // n == 0 ? 400140 jne 0x400200 // 此時 n == 0,故jne不跳轉 400180 mov $0x0,%eax // 繼續執行cmp后面的指令 4001c0 jmp 0x400380 // 無條件跳轉到指令leaveq 400380 leaveq // 恢復%rbp 4003c0 retq // sum(0)函數返回 400300 mov -0x8(%rbp),%rdx 400340 add %rdx,%rax 400380 leaveq 4003c0 retq // sum(1)函數返回 400300 mov -0x8(%rbp),%rdx 400340 add %rdx,%rax 400380 leaveq 4003c0 retq // sum(2)函數返回 400300 mov -0x8(%rbp),%rdx 400340 add %rdx,%rax 400380 leaveq 4003c0 retq // sum(3)函數返回 400480 mov %rax,-0x8(%rbp) register match memory match 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的bilibili深入理解计算机系统笔记(2):第一次代码重构,汇编模拟器,递归,指令周期实现。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久天堂影院 | 国产综合久久 | 国产精品美女久久久久久久网站 | 91精品久久久久久久久久入口 | 国产99一区二区 | 98久久 | 91丝袜美腿 | 97免费在线视频 | 亚洲免费在线播放视频 | 色网站中文字幕 | 91精品视频在线 | 有码中文在线 | 日韩免费电影一区二区 | 中字幕视频在线永久在线观看免费 | 日韩在线视频一区 | 日韩免费观看视频 | 国产精品18毛片一区二区 | 爱情影院aqdy鲁丝片二区 | av网站免费看 | 久久久久久久国产精品视频 | 久久激情视频 | 国产做aⅴ在线视频播放 | 麻花传媒mv免费观看 | 韩日精品中文字幕 | 欧洲色综合 | 国产乱码精品一区二区蜜臀 | 国产精品久99 | 日本久草电影 | 久久久精品国产一区二区 | 视频 天天草 | 99一区二区三区 | 欧美久久久久久久久中文字幕 | 久久国产精品99久久久久久进口 | 不卡的av在线 | 久久久久二区 | 一区二区视频免费在线观看 | 久久成人亚洲欧美电影 | 国产成人av一区二区三区在线观看 | 免费在线观看午夜视频 | 久久99九九99精品 | 五月天久久综合网 | 久久久久婷 | 亚洲免费av在线 | 久久精品日本啪啪涩涩 | 91精彩视频 | 91麻豆视频 | 欧美另类巨大 | 亚洲视频专区在线 | 色av男人的天堂免费在线 | 国产性xxxx| a黄色一级 | 国产精品久久99综合免费观看尤物 | 成人久久久久 | 毛片无卡免费无播放器 | 国产黄色精品视频 | 国产福利精品视频 | 日韩欧美精品一区 | 亚洲另类视频 | www夜夜操| 国产精品露脸在线 | 欧美日产一区 | 免费观看完整版无人区 | 精品久久久久久久久久久久久久久久久久 | 激情小说久久 | 中文字幕免费不卡视频 | 久久不卡视频 | 视频在线观看入口黄最新永久免费国产 | 美女久久久久久久久久久 | 91av原创 | 91av福利视频| 国产麻豆视频在线观看 | 成年人免费观看在线视频 | 国产伦精品一区二区三区照片91 | 超碰.com| 五月香视频在线观看 | 怡红院av久久久久久久 | 亚洲国产视频a | 日本性xxxxx| 亚洲精品国产精品99久久 | 色资源网免费观看视频 | 成人免费中文字幕 | 日韩一区二区三 | 激情视频一区二区三区 | 日韩性色| 国产性xxxx | 欧美日韩视频一区二区三区 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 国产在线精品观看 | 97超碰福利久久精品 | 在线视频精品 | 国产精品视频地址 | 中文字幕成人 | 中文字幕在线观看不卡 | 激情av综合 | 日韩精品视频免费专区在线播放 | 国产日韩精品久久 | 成人影音在线 | 91手机在线看片 | 这里只有精彩视频 | 国产亚洲视频中文字幕视频 | 三级在线播放视频 | 日韩大片在线免费观看 | 色噜噜在线观看 | 日韩av三区 | 色丁香色婷婷 | 色老板在线视频 | 亚洲精品成人免费 | 免费黄色特级片 | 欧美aa级 | 天堂va在线高清一区 | 国产精品高清免费在线观看 | 在线亚洲精品 | 久久久久国产成人免费精品免费 | 免费观看久久久 | 中文字幕日韩有码 | 中文字幕在线高清 | 久青草国产在线 | 麻豆一区在线观看 | 久久草草热国产精品直播 | 91视频大全 | 349k.cc看片app | 色国产精品一区在线观看 | 国产视频2区 | 日本aaaa级毛片在线看 | 欧美日韩精品综合 | 高清av免费观看 | 国产精品久久久久久久毛片 | www.777奇米 | 一级黄色av | 久久tv视频 | 在线看成人 | 最新av观看| 国产香蕉视频在线观看 | 青青射| 国色综合| 久久综合九色综合欧美就去吻 | 欧美黄色高清 | 成人av在线一区二区 | 国产字幕在线看 | 久久精品牌麻豆国产大山 | 69国产在线观看 | 精品在线观看免费 | 五月综合色婷婷 | 日本精品久久久久中文字幕5 | 国产一级免费观看 | 天天干视频在线 | 天天综合天天综合 | 久久国语露脸国产精品电影 | 日韩一区二区在线免费观看 | 欧美日韩免费一区二区三区 | 国产精品美女在线 | 狠狠伊人| 免费婷婷| 日本黄色免费在线观看 | 水蜜桃亚洲一二三四在线 | 精品一区 精品二区 | 国产在线观看一 | 在线观看岛国av | 三级免费黄色 | 狠狠干夜夜 | 亚洲精品www久久久 www国产精品com | 国产最新福利 | 91av在线不卡| 色婷婷国产 | 2024国产精品视频 | 九九热只有这里有精品 | 亚洲a资源 | 免费在线激情电影 | 六月婷婷色 | 91黄色小网站| 天天玩天天干天天操 | 日韩激情免费视频 | 亚洲欧洲久久久 | 亚洲激情电影在线 | 国产成人在线综合 | 成 人 黄 色 免费播放 | 五月天激情婷婷 | 日日夜夜免费精品 | 久久久久这里只有精品 | 欧美大片在线观看一区 | 欧美在线视频二区 | 国产视频资源在线观看 | 国产做aⅴ在线视频播放 | 国产h在线播放 | 精品视频不卡 | 欧美极品少妇xxxx | 久久久这里有精品 | 91精品免费看 | 亚洲精品黄色 | 国产成人精品亚洲日本在线观看 | 香蕉视频在线播放 | 国产手机在线播放 | 国产在线高清 | 亚洲区另类春色综合小说校园片 | 精品美女在线观看 | 久久久久激情 | 亚洲一本视频 | 中文字幕丝袜一区二区 | 日韩视频免费看 | 岛国av在线 | 99久久精品国产系列 | 成人午夜免费福利 | 三级黄在线 | 在线观看免费av网站 | 免费成人在线观看视频 | 91麻豆精品久久久久久 | 美腿丝袜av | 西西4444www大胆无视频 | 国产乱老熟视频网88av | 国产成人在线综合 | 免费国产在线精品 | 亚洲欧美一区二区三区孕妇写真 | 91网站在线视频 | 国产精品久久久亚洲 | 亚洲免费观看在线视频 | 久久久久欧美精品999 | 国产一级片一区二区三区 | 美女久久久久久久久久久 | 美女露久久 | 五月婷婷操 | 国产精品一区二区av | 国产精品网红直播 | 男女视频久久久 | 久久成人在线视频 | 久久精品美女视频 | av色图天堂网 | 五月天综合网站 | 99热超碰| 久久免费视频网 | 国产精品永久在线观看 | 五月天.com| 亚洲91视频 | 特黄色大片 | 99久久精品电影 | 久久影视精品 | 久久成人国产精品一区二区 | 狠狠狠狠狠狠狠狠干 | 国产成人精品一区二区三区网站观看 | 国产美女无遮挡永久免费 | 91av手机在线观看 | 欧美日韩在线免费观看 | 亚洲国产中文字幕在线观看 | 日韩av福利在线 | 日韩啪啪小视频 | 免费日韩高清 | 久久免费视频精品 | 成人av日韩 | 午夜婷婷在线播放 | 天天干天天怕 | 欧美日韩一区二区免费在线观看 | 美女黄频 | 高清av中文字幕 | 日韩欧美视频一区二区 | 久草.com| 欧美精品乱码久久久久 | 午夜久久影视 | 日b黄色片 | 成人在线超碰 | 四虎影视久久久 | freejavvideo日本免费 | 久久久高清一区二区三区 | 日韩视频区 | 久久久午夜视频 | 国产免费视频一区二区裸体 | 天天激情综合网 | 五月婷婷综合在线 | 久久五月婷婷丁香社区 | 青青网视频 | 成人三级av | 中文字幕乱码在线播放 | 99久久一区| 男女免费视频观看 | 久草久草在线观看 | 国产精品久久三 | 六月丁香综合 | 国产99久久久国产精品免费看 | 中文字幕在线免费97 | 三级av免费| 日韩理论电影在线 | av青草| 91精品久久久久久综合五月天 | 国产精品亚洲精品 | 精品嫩模福利一区二区蜜臀 | av成人免费在线看 | 久草视频资源 | 国产小视频国产精品 | 国产主播大尺度精品福利免费 | 亚洲电影院| 久久久久久久久久久久av | 色美女在线 | 欧美一级性生活片 | 亚州精品成人 | 久久久九色精品国产一区二区三区 | www久草| 亚洲va天堂va欧美ⅴa在线 | 国产成人一区二区在线观看 | 激情欧美国产 | 操操操天天操 | 国产亚洲精品无 | 91在线免费播放 | av视屏在线 | 免费观看性生活大片3 | 国产a视频免费观看 | 97人人澡人人爽人人模亚洲 | 亚洲精品资源在线观看 | www.色婷婷.com | 爱色av.com| 国产999精品久久久影片官网 | 在线观看免费日韩 | 综合铜03| 欧美日韩不卡在线观看 | 精品亚洲午夜久久久久91 | 亚洲成年人在线播放 | 精品国产一区二区三区av性色 | 色欧美成人精品a∨在线观看 | 日日摸日日碰 | 五月婷婷综合激情 | 91人人爽人人爽人人精88v | 国产精品免费一区二区三区在线观看 | 日韩中文字 | 97超碰成人| 亚洲精品视频在线免费播放 | 91影视成人 | 四虎永久视频 | 亚洲精品在线网站 | 黄色av成人在线观看 | 91在线视频免费 | 一区电影 | 在线免费中文字幕 | 激情视频一区二区三区 | 久久久久成人精品 | 欧美日韩3p | 精品在线观 | 成人午夜毛片 | 日韩午夜剧场 | 国产午夜精品一区 | 午夜精品一区二区三区在线 | 国内精品久久久久久久久 | 在线国产黄色 | 91精品视频在线看 | 91福利视频久久久久 | 92精品国产成人观看免费 | 欧洲精品久久久久毛片完整版 | www日韩高清 | 国产中文字幕一区二区 | 亚洲做受高潮欧美裸体 | 欧美成人h版在线观看 | www蜜桃视频| 91在线中字| 精品久久久久久久久久岛国gif | 久久电影网站中文字幕 | 99久精品视频 | 9999在线观看 | 午夜精品一区二区三区免费 | 国产成人一区二区在线观看 | 国产免费二区 | 亚洲一区二区三区四区精品 | 国产亚洲高清视频 | 欧美日韩久久不卡 | 久久成年人网站 | 日韩精品一区二区三区在线视频 | 久久综合色综合88 | 成年人网站免费在线观看 | 国产99久| 国产综合婷婷 | 色播五月激情五月 | 麻豆极品 | 国产成人精品999在线观看 | 欧美伦理电影一区二区 | 97视频在线免费 | 91精品对白一区国产伦 | 伊人夜夜 | 久久久精品网站 | 亚洲另类在线视频 | 国产一级小视频 | 91久久精 | 丁香婷婷深情五月亚洲 | 五月婷婷色丁香 | 免费a v视频| 日韩网站在线免费观看 | 在线天堂视频 | 国产一级视频在线免费观看 | 超碰在线97免费 | 99国产精品久久久久久久久久 | 国产精品xxxx18a99| 亚洲天堂视频在线 | 欧美国产高清 | 91福利视频免费观看 | 亚洲免费成人av电影 | 性色av香蕉一区二区 | 精品视频免费久久久看 | 久操视频在线 | 美女网站在线观看 | 中国一级片在线观看 | 97成人超碰 | 欧美久久久久久久久久久久 | 成人在线观看免费视频 | 97国产精品免费 | 久草视频在线新免费 | 天天操天天操天天操天天操天天操 | 中文字幕在线久一本久 | 国产精品黄色 | 国产精品久久久久久久妇 | 免费在线观看一级片 | 欧美日韩久 | 亚洲午夜精品一区二区三区电影院 | 狠狠色伊人亚洲综合网站野外 | 久久精品国产一区二区 | 久久综合色8888 | 成年人在线观看免费视频 | 精品免费国产一区二区三区四区 | 精品中文字幕在线观看 | 久久久久久久久艹 | 黄色大片国产 | 偷拍视频一区 | 国产黄色在线网站 | 久久99九九99精品 | 99久久精品久久亚洲精品 | 精品视频免费观看 | 另类五月激情 | 国产成人精品av在线 | 久久视频这里有久久精品视频11 | 日本中文字幕在线播放 | 97国产精品免费 | 久久精品欧美 | 日韩性色 | 国产中文字幕三区 | 久久成人精品电影 | 一区二区激情 | 天天干天天射天天爽 | 在线成人免费电影 | 五月开心六月婷婷 | 欧美日韩国产精品一区二区亚洲 | 狠狠色香婷婷久久亚洲精品 | 国产又粗又硬又爽视频 | 免费观看全黄做爰大片国产 | 天天操夜夜逼 | 日韩欧美国产成人 | 免费久久99精品国产 | 欧美日韩国产在线精品 | 又黄又爽又无遮挡的视频 | 国产精品女人久久久久久 | 狂野欧美激情性xxxx | 亚洲视频在线观看免费 | 中文字幕在线观看视频免费 | 日韩黄视频| 啪啪午夜免费 | 天天插天天操天天干 | 一级α片免费看 | 国产系列 在线观看 | av大片免费看 | 黄色午夜 | 亚洲国产免费网站 | 波多野结衣电影久久 | 五月天亚洲精品 | 超碰在线99 | 天天操夜夜拍 | 欧美日韩国产综合一区二区 | 久久91久久久久麻豆精品 | 久草在线免费播放 | 免费观看成人av | 视频一区二区在线观看 | 久草在线视频首页 | 麻豆视传媒官网免费观看 | 日韩欧美综合在线视频 | 亚洲精品视频第一页 | 一级黄色免费网站 | 91av蜜桃 | 日韩在线视频播放 | 天天操天天操天天操天天操天天操天天操 | 日韩欧美亚州 | 国产黄色片一级三级 | 久久综合狠狠综合 | av中文字幕剧情 | 在线观看深夜视频 | 亚洲精品18日本一区app | 国产女人免费看a级丨片 | 97av在线视频免费播放 | 国产亚洲欧美在线视频 | 国产成人a亚洲精品 | 91精品国产福利在线观看 | 久久五月天色综合 | 精品亚洲一区二区 | 国产99久久久国产精品成人免费 | 在线观看一二三区 | 日日夜夜精品 | 亚洲国产精品女人久久久 | 色偷偷88888欧美精品久久久 | 久草影视在线观看 | 久久一区二区三区超碰国产精品 | 国产一级在线看 | 国产在线一区观看 | 久99视频| .国产精品成人自产拍在线观看6 | 91成人精品国产刺激国语对白 | 99麻豆久久久国产精品免费 | 天天插夜夜操 | h视频在线看 | 国产人成精品一区二区三 | 国产亚洲欧美日韩高清 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久99精品国产99久久6尤 | 激情综合网天天干 | 国产黄视频在线观看 | 91av美女| 色99中文字幕 | 久久精品一区二区三区国产主播 | 九九欧美视频 | 亚洲高清视频在线播放 | 亚洲精品乱码久久久久久蜜桃动漫 | 色av男人的天堂免费在线 | 久久久在线观看 | 91看片淫黄大片一级在线观看 | 六月激情网| 国产又粗又硬又长又爽的视频 | 国产精品网址在线观看 | 国产精品免费在线观看视频 | 久久观看最新视频 | 欧美日韩在线网站 | 欧美一区二区三区免费看 | 日韩av黄 | 色视频在线观看 | 久久国产一二区 | 亚洲麻豆精品 | 欧美日韩中文另类 | 很黄很黄的网站免费的 | 久久综合九色欧美综合狠狠 | 亚洲在线网址 | 99精品在线免费观看 | 在线观看亚洲精品视频 | 美女网站色免费 | 国产最新福利 | 中文字幕在线日 | 91传媒免费观看 | 欧美日韩高清国产 | 久草资源免费 | 日本福利视频在线 | 成人国产精品一区二区 | 亚洲精品资源在线 | 狠狠狠色丁香综合久久天下网 | 国产资源免费在线观看 | av噜噜噜在线播放 | 国产美女网站视频 | 9在线观看免费高清完整 | 免费在线观看污 | 日韩欧美一区二区三区在线 | 久草视频中文在线 | 麻豆视传媒官网免费观看 | 午夜久久影院 | 精品超碰| 国产手机在线视频 | 精品国产一区二区三区四 | 欧美精品在线观看一区 | 91x色| 中文字幕 二区 | 亚洲日本精品视频 | 99产精品成人啪免费网站 | 久久看免费视频 | 国产日韩精品欧美 | 成年人电影免费看 | 九九九九九九精品任你躁 | 97在线视频免费 | 在线观看av国产 | 91av在| 亚洲天天在线日亚洲洲精 | 国产精品porn | 最近中文字幕第一页 | 狠狠干干 | 国产精品欧美日韩 | 深爱激情综合 | av在线播放中文字幕 | 四虎在线视频免费观看 | 四虎影视www | 成av在线| 精品国产网址 | 久久人人爽人人爽 | av免费网站在线观看 | 久久不见久久见免费影院 | 欧美亚洲国产一卡 | 色综合久久88色综合天天6 | 怡红院av久久久久久久 | 激情五月色播五月 | 91成人亚洲 | 五月天激情视频在线观看 | 免费观看成年人视频 | 免费看一级 | 欧美激情精品久久久久久变态 | 99麻豆视频 | 一区二区三区在线免费 | 美女免费网站 | 精品视频亚洲 | 九九爱免费视频在线观看 | 亚洲国产高清视频 | www.夜夜干.com | 国产精品日韩 | 天天操天天射天天插 | 久久综合久久综合这里只有精品 | 国产日韩视频在线播放 | 免费看一及片 | av电影 一区二区 | 天堂网中文在线 | 奇米网8888 | 亚洲国产精彩中文乱码av | 国产原创在线 | 91精品日韩 | 久久精品视频免费播放 | 国产成人精品日本亚洲999 | 伊人影院得得 | 99草在线视频 | 一区二区三区免费 | a√资源在线 | 九九热免费视频在线观看 | av电影 一区二区 | av免费看在线 | 亚洲国产三级 | 91精品999 | 亚洲精品网站在线 | 亚洲天天| 国产精品一区二区三区免费看 | 久热香蕉视频 | 国产精品九九久久久久久久 | 涩涩网站在线 | 懂色av懂色av粉嫩av分享吧 | 午夜av片| 91免费版在线观看 | 香蕉日日 | 青青河边草观看完整版高清 | 精品一二三四在线 | 成人性生爱a∨ | 超碰在线人人艹 | www.com黄色| 日韩视频免费观看高清完整版在线 | 伊人亚洲综合 | 天堂视频中文在线 | 人人干人人添 | 97视频免费播放 | 97视频在线观看播放 | 丁香激情视频 | 激情一区二区三区欧美 | 国产一区二区成人 | 91精品夜夜| 久久久.com| 伊人久久国产精品 | 久草亚洲视频 | 免费网站黄色 | av网站在线免费观看 | 免费在线观看av网址 | 四虎国产精品成人免费4hu | 在线 日韩 av | 五月综合 | 日韩免费成人 | 久久成人国产精品入口 | 日韩一区二区三 | 99久久精品免费看国产免费软件 | 国产一级在线视频 | 日本性xxx | 亚洲精品美女久久久久 | 欧美一级黄色片 | 国产精品igao视频网网址 | 九九免费在线看完整版 | 亚洲 欧美 变态 国产 另类 | 久久国产综合视频 | 亚洲精品动漫在线 | 伊人亚洲综合网 | 五月婷婷六月丁香 | 黄色小说在线免费观看 | 日韩网站一区 | 国产成人精品久久亚洲高清不卡 | 伊甸园永久入口www 99热 精品在线 | 中文有码在线视频 | 免费a一级 | 国产免费人人看 | 久久久国产精品一区二区三区 | 国产精品1区2区3区 久久免费视频7 | 国产成人精品亚洲精品 | 日韩欧美综合精品 | 国产精品9999 | 999国内精品永久免费视频 | 国产日韩av在线 | 国产亚洲精品久久久久动 | 欧美日韩三级在线观看 | 久久精品视频在线播放 | 国产精品久久一 | 欧美不卡在线 | 日韩免费观看一区二区 | 日韩久久精品 | 欧美一级免费黄色片 | 992tv人人网tv亚洲精品 | 日本久久不卡视频 | 狠狠色丁香婷综合久久 | 久久免费的精品国产v∧ | 999久久国精品免费观看网站 | 97影视 | 亚洲欧美精品一区二区 | 国产高清av | 色窝资源| 久久久高清视频 | 亚洲一级国产 | 热99在线| 日韩理论电影在线观看 | 黄色免费国产 | www国产亚洲精品久久麻豆 | 天天色图 | 91精品国产一区二区在线观看 | 日日成人网 | 男女激情片在线观看 | 中文电影网| 91av在线免费播放 | 国产精品第10页 | 国产在线播放一区二区三区 | 91精品国产福利 | 在线视频精品播放 | 在线观看网站你懂的 | 香蕉视频18 | 久射网| 狠狠狠狠狠操 | 免费精品 | 九九精品久久久 | 日韩亚洲在线观看 | 亚洲一区尤物 | 国产久草在线 | 天天操天天艹 | 成人精品影视 | 91久久久久久国产精品 | 婷婷伊人五月天 | 国产 欧美 日韩 | 久久这里精品视频 | 久久久久一区二区三区四区 | 9999精品 | www蜜桃视频| 人人干网站 | 制服丝袜亚洲 | 综合色久 | 97天堂 | 狠狠操狠狠干2017 | 国产小视频你懂的在线 | 免费看特级毛片 | 亚洲欧美国产精品va在线观看 | 奇米影音四色 | 天堂av在线网 | 中文字幕电影高清在线观看 | 99精彩视频| 99色婷婷| 国产亚洲精品v | 国产精品嫩草影院99网站 | 国产精品久久久久久久99 | 91香蕉视频黄色 | 蜜臀av网站| 日本中文在线 | 精品久久久一区二区 | h动漫中文字幕 | 日韩欧美高清不卡 | 欧美日韩视频网站 | 网站在线观看你们懂的 | 91亚·色 | 97精品欧美91久久久久久 | 在线视频一二区 | 在线观看视频黄 | 日韩在线免费 | 亚在线播放中文视频 | 国产一区免费 | 人人搞人人干 | 91精品免费在线视频 | 在线视频日韩精品 | 日韩久久久久久久久久久久 | 国产亚洲久一区二区 | 久久玖 | 黄色动态图xx | 在线亚洲午夜片av大片 | 国产福利免费在线观看 | 成人网色 | 欧美在线观看视频一区二区三区 | 亚洲三级黄 | 99视频精品免费观看, | 日日夜夜精品免费视频 | 日韩免费在线观看视频 | 午夜精品久久久久久久99水蜜桃 | 国产手机视频精品 | 视频一区二区免费 | 国产精品入口麻豆www | 二区三区在线 | 超碰在线官网 | 免费在线成人av | 91精品91 | 午夜在线免费视频 | 国产日韩欧美在线一区 | 精品免费视频123区 午夜久久成人 | 中文字幕刺激在线 | 日韩一区二区三区免费电影 | 热re99久久精品国产66热 | 国产一区视频在线观看免费 | 99成人精品 | 丁香五婷| 中文字幕av电影下载 | 黄色成人在线观看 | 人人揉人人揉人人揉人人揉97 | 天天碰天天操视频 | 这里只有精彩视频 | 天天天干天天射天天天操 | 国产美女在线免费观看 | 久久a热6| 国语精品免费视频 | 中文字幕中文字幕在线中文字幕三区 | 国产成人一二片 | 亚洲精品视频第一页 | 97超碰资源 | 五月天综合网 | 中文亚洲欧美日韩 | 亚洲成人黄 | 久久精品视 | 黄色1级毛片| 久草在线观看视频免费 | 中文字幕av在线免费 | 亚洲美女在线国产 | 一区二区 精品 | 亚洲妇女av| 亚洲日韩精品欧美一区二区 | 人人网人人爽 | 伊人天天干 | 91传媒激情理伦片 | 欧美性色19p | 在线免费看黄色 | 成人在线免费观看网站 | 欧美色图东方 | 手机av电影在线 | 五月婷婷综 | 欧美福利片在线观看 | 黄色录像av| 欧美日本啪啪无遮挡网站 | 天天狠狠操 | 久久精品久久精品久久精品 | 九色视频自拍 | 2024av| 91chinese在线 | 久久电影色 | 久久久久国产精品免费网站 | 91av片| 久久久精品网站 | 天天人人综合 | 日本不卡久久 | 91热| 亚洲最新av网站 | 五月天激情综合 | 国产中文字幕视频在线观看 | 日韩高清在线一区 | 国产精品com | 成人性生交大片免费看中文网站 | 综合在线色 | 亚洲精品观看 | 中文字幕精品一区二区精品 | 国产视频网站在线观看 | 人人爽人人av | 三级av在线免费观看 | 青草视频在线 | .国产精品成人自产拍在线观看6 | 91精品在线免费观看视频 | 日韩电影在线视频 | 久久99热精品这里久久精品 | 欧美a级在线免费观看 | 99久久精品久久亚洲精品 | 日韩视频在线不卡 | 玖玖在线观看视频 | 亚洲精选国产 | 免费看网站在线 | 超碰在线人人 | 黄网站色| 免费看污污视频的网站 | 久久a国产 | 91av在线免费观看 | 久热色超碰 | 香蕉蜜桃视频 | 欧美成年人在线视频 | 97视频人人免费看 | 91亚洲精品久久久蜜桃借种 | 99精品视频在线观看 | 欧美另类激情 | 欧美极品久久 | 亚洲欧洲精品在线 | 日韩成人欧美 | 久久综合免费视频影院 | 免费看三级网站 | 97精品国产一二三产区 | 视频在线99 | 91av精品 | 久草综合视频 | 欧美黑吊大战白妞欧美 | 91精品在线免费观看视频 | 日韩福利在线观看 | 亚洲丁香日韩 | 99国产在线 | 在线激情网 | 99热最新在线 | 99精品在线| 女人18毛片a级毛片一区二区 | 成人手机在线视频 | 国产999精品久久久久久 | 九九九九九精品 | 中文字幕在线免费 | 亚洲最新精品 | 欧美污污网站 | 在线免费视频 你懂得 | 日韩在线观看一区二区三区 | 亚洲欧美综合精品久久成人 | 天天做综合网 | 免费观看高清 | 久久精品国亚洲 | av中文字幕网站 | 国产三级精品三级在线观看 | 啪啪肉肉污av国网站 | 国产免费激情久久 | 中文字幕免费国产精品 | 久久高清国产 | 日精品| 国产在线91精品 | 日韩av免费一区二区 | 主播av在线 | 91精品一区二区三区久久久久久 | 中文字幕精品www乱入免费视频 | 91豆花在线观看 | 国产又粗又猛又爽又黄的视频免费 | 国产欧美最新羞羞视频在线观看 | 久久一级电影 | 奇米影视777四色米奇影院 | 999视频在线播放 | 超碰在线网 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 国产大片免费久久 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 国产玖玖在线 | 亚洲日本成人网 | 久久久蜜桃 | 欧美91精品久久久久国产性生爱 | 日韩极品在线 | 欧美在线视频一区二区 | 国产视频在线观看免费 | 国产精品一二三 | 色偷偷男人的天堂av | 亚洲a在线观看 | 中文字幕婷婷 | 久久精品综合视频 | av一级久久| 在线观看中文字幕av | 岛国av在线 | 国产黄色高清 | 91免费高清观看 | aaa毛片视频 | 国产伦精品一区二区三区在线 | 伊人永久在线 | 国产精品第2页 | 日韩av电影手机在线观看 | 日韩精品一区二区三区免费观看 | 91一区一区三区 | 2000xxx影视| 六月丁香在线视频 | 中文字幕在线观看免费观看 | 亚洲成av人电影 | 国产精品第2页 | 日韩在线一区二区免费 | 欧美性护士| 国产精品久久久网站 | 国产99久久九九精品 | 亚洲视频电影在线 | 九九热免费在线观看 | 国产成人精品网站 | 在线观看黄网 | 国产精品第一页在线观看 | h视频在线看| 人人干人人搞 | 中文字幕国语官网在线视频 | 99综合电影在线视频 | 久久激情影院 | 久草视频在线播放 | 日韩视频中文字幕在线观看 | 欧美激情操 | 欧美激情精品久久久久久免费 | 高清日韩一区二区 | 国产视频一区精品 | 色综合久久88色综合天天 | 午夜av剧场| 日日爽天天爽 | 亚洲综合小说 | 免费a一级| 久久久国产电影 | 不卡精品视频 | 丁香婷婷深情五月亚洲 | 成年人免费在线观看网站 | 91麻豆文化传媒在线观看 | 97精品视频在线播放 | 18女毛片| www.狠狠| 久草视频网 | 伊人超碰在线 | 中文字幕在线观看免费高清完整版 | 国产 字幕 制服 中文 在线 | 国产午夜小视频 | 玖玖视频网| 国产一区国产二区在线观看 | 人人舔人人舔 |