狠狠综合久久久久综合网址-a毛片网站-欧美啊v在线观看-中文字幕久久熟女人妻av免费-无码av一区二区三区不卡-亚洲综合av色婷婷五月蜜臀-夜夜操天天摸-a级在线免费观看-三上悠亚91-国产丰满乱子伦无码专区-视频一区中文字幕-黑人大战欲求不满人妻-精品亚洲国产成人蜜臀av-男人你懂得-97超碰人人爽-五月丁香六月综合缴情在线

代寫CSCI 2122、C++程序語言代做

時間:2024-04-02  來源:  作者: 我要糾錯



CSCI 2122 Assignment 4
Due date: 11:59pm, Friday, March 22, 2024, submitted via git
Objectives
The purpose of this assignment is to practice your coding in C, and to reinforce the concepts discussed in
class on program representation.
In this assignment1 you will implement a binary translator2 like Rosetta3
. Your program will translate from
a simple instruction set (much simpler than x86) to x86 and generate x86 assembly code. The code will
then be tested by assembling and running it. This assignment is divided into two parts to make it simpler.
In the first part, you will implement the loader and a simple translator, which translates the simpler instructions. In the second part, you will extend the translator to translate more complex instructions.
Preparation:
1. Complete Assignment 0 or ensure that the tools you would need to complete it are installed.
2. Clone your assignment repository:
https://git.cs.dal.ca/courses/2024-winter/csci-2122/assignment-4/????.git
where ???? is your CSID. Please see instructions in Assignment 0 and the tutorials on Brightspace if
you are not sure how.
Inside the repository there is one directory: xtra, where code is to be written. Inside the directory is a
tests directory that contains tests that will be executed each time you submit your code. Please do not
modify the tests directory or the .gitlab-ci.yml file that is found in the root directory. Modifying
these files may break the tests. These files will be replaced with originals when the assignments are
graded. You are provided with sample Makefile files that can be used to build your program. If you
are using CLion, a Makefile will be generated from the CMakeLists.txt file generated by CLion.
Background:
For this assignment you will translate a binary in a simplified RISC-based 16-bit instruction set to x86-64
assembly. Specifically, the X instruction set comprises a small number (approximately 30) instructions,
most of which are two bytes (one word) in size.
The X Architecture has a 16-bit word-size and 16 general purpose 16-bit registers (r0 . . . r15 ). Nearly all
instructions operate on 16-bit chunks of data. Thus, all values and addresses are 16 bits in size. All 16-bit
values are also encoded in big-endian format, meaning that the most-significant byte comes first.
Apart from the 16 general purpose registers, the architecture has two special 16-bit registers: a program
counter (PC), which stores the address of the next instruction that will be executed, and the status (F),
which stores bit-flags representing the CPU state. The least significant bit of the status register (F) is the
condition flag, which represents the truth value of the last logical test operation. The bit is set to true if
the condition was true, and to false otherwise.
1 The idea for this assignment came indirectly from Kyle Smith.
2 https://en.wikipedia.org/wiki/Binary_translation
3 https://en.wikipedia.org/wiki/Rosetta_(software)
Additionally, the CPU uses the last general-purpose register, r15, to store the pointer to the program stack.
This register is incremented by two when an item is popped off the stack and decremented by two when
an item is pushed on the stack. The program stack is used to store temporary values, arguments to a
function, and the return address of a function call.
The X Instruction Set
The instruction set comprises approximately 30 instructions that perform arithmetic and logic, data movement, stack manipulation, and flow control. Most instructions take registers as their operands and store
the result of the operation in a register. However, some instructions also take immediate values as operands. Thus, there are four classes of instructions: 0-operand instructions, 1-operand instructions, 2-operand instructions, and extended instructions, which take two words (4 bytes) instead of one word.
All but the extended instructions are encoded as a single word (16 bits). The extended instructions are
also one word but are followed by an additional one-word operand. Thus, if the instruction is an extended
instruction, the PC needs an additional increment of 2 during the instruction’s execution. As mentioned
previously, most instructions are encoded as a single word. The most significant two bits of the word
indicates whether the instruction is a 0-operand instruction (00), a 1-operand instruction (01), a 2-operand
instruction (10), or an extended instruction (11). For a 0-operand instruction encoding, the two most significant bits are 00 and the next six bits represent the instruction identifier. The
second byte of the instruction is 0.
For a 1-operand instruction encoding, the two most significant bits are 01,
the next bit indicates whether the operand is an immediate or a register,
and the next five bits represent the instruction identifier. If the third most
significant bit is 0, then the four most significant bits of the second byte
encode the register that is to be operated on (0… 15). Otherwise, if the third most significant bit is 1, then
the second byte encodes the immediate value.
For a 2-operand instruction encoding, the two most significant bits are 10, and
the next six bits represent the instruction identifier. The second byte encodes
the two register operands in two four-bit chunks. Each of the 4-bit chunks identifies a register (r0 … r15).
For an extended instruction encoding, the two most significant bits are
11, the next bit indicates whether a second register operand is used, and
the next five bits represent the instruction identifier. If the third most
significant bit is 0, then the instruction only uses the one-word immediate operand that follows the instruction. Otherwise, if the third most significant bit is 1, then the four
most significant bits of the second byte encode a register (1 … 15) that is the second operand.
The instruction set is described in Tables 1, 2, 3, and 4. Each description includes the mnemonic (and
syntax), the encoding of the instruction, the instruction’s description, and function. For example, the add,
loadi, and push instructions have the following descriptions:
Mnemonic Encoding Description Function
add rS, rD 10000001 S D Add register rS to register rD. rD ← rD + rS
loadi V, rD 11100001 D 0 Load immediate value or address V into
register rD.
rD ← memory[PC]
PC ← PC + 2
push rS 01000011 S 0 Push register rS onto program stack. r15 ← r15 - 2
memory[r15 ] ← rS
First, observe that the add instruction takes two register operands and adds the first register to the second. All 2-operand instructions operate only on registers and the second register is both a source and
destination, while the first is the source. It is a 2-operand instruction; hence the first two bits are 10, its
instruction identifier is 000001 hence the first byte of the instruction is 0x81.
Second, the loadi instruction is an extended instruction that takes a 16-bit immediate and stores it in a
register. Hence, the first two bits are 11, the register bit is set to 1, and the instruction identifier is 00001.
Hence, the first byte is encoded as 0xE1.
Third, the push instruction is a 1-operand instruction, taking a single register operand. Hence, the first
two bits are 01, the immediate bit is 0, and the instruction identifier is 00011. Hence, the first byte is
encoded as 0x43.
Note that S and D are 4-bit vectors representing S and D.
Table 1: 0-Operand Instructions
Mnemonic Encoding Description Function
ret 00000001 0 Return from a procedure call. P C ← memory[r15 ]
r15 ← r15 + 2
cld 00000010 0 Stop debug mode See Debug Mode below.
std 00000011 S 0 Start debug mode See Debug Mode below.
Table 1: 1-Operand Instructions
Mnemonic Encoding Description Function
neg rD 01000001 D 0 Negate register rD . rD ← −rD
not rD 01000010 D 0 Logically negate register rD . rD ←!rD
inc rD 01001000 D 0 Increment rD . rD ← rD + 1
dec rD 01001001 D 0 Decrement rD . rD ← rD – 1
push rS 01000011 S 0 Push register rS onto the pro- gram stack. r15 ← r15 – 2
memory[r15] ← rS
pop rD 01000100 D 0 Pop value from stack into register rD. rD ← memory[r15 ]
r15 ← r15 + 2
out rS 01000111 S 0 Output character in rS to std- out. output ← rS (see below)
br L 01100001 L Branch relative to label L if condition bit is
true.
if F & 0x0001 == 0x001:
 PC ← PC + L – 2
jr L 01100010 L Jump relative to label L. PC ← PC + L – 2
Table 3: 2-Operand Instructions
Mnemonic Encoding Description Function
add rS , rD 10000001 S D Add register rS to register rD . rD ← rD + rS
sub rS , rD 10000010 S D Subtract register rS from register rD. rD ← rD - rS
mul rS , rD 10000011 S D Multiply register rD by register rS. rD ← rD * rS
and rS , rD 10000101 S D And register rS with register rD . rD ← rD & rS
or rS , rD 10000110 S D Or register rS with register rD . rD ← rD | rS
xor rS , rD 10000111 S D Xor register rS with register rD . rD ← rD ^ rS
test rS1, rS2 10001010 S D Set condition flag to true if and only if
rS1 ∧ rS2 is not 0.
if rS1 & rS2 != 0:
 F ← F | 0x0001
else:
 F ← F & 0xFFFE
cmp rS1, rS2 10001011 S D Set condition flag to true if and only If
rS1 < rS2.
if rS1 < rS2:
 F ← F | 0x0001
else:
 F ← F & 0xFFFE
equ rS1, rS2 10001100 S D Set condition flag to true if and only if
rS1 == rS2.
if rS1 == rS2:
 F ← F | 0x0001
else:
 F ← F & 0xFFFE
mov rS , rD 10001101 S D Copy register rS to register rD . rD ← rS
load rS , rD 10001110 S D Load word into register rD from memory
pointed to by register rS.
rD ← memory[rS]
stor rS , rD 10001111 S D Store word from register rS to memory at
address in register rD.
memory[rD] ← rS
loadb rS , rD 10010000 S D Load byte into register rD from memory
pointed to by register rS.
rD ← (byte)memory[rS]
storb rS , rD 10010001 S D Store byte from register rS to memory at
address in register rD.
(byte)memory[rD] ← rS
Table 3: Extended Instructions
Mnemonic Encoding Description Function
jmp L 11000001 0 Absolute jump to label L. PC ← memory[PC]
call L 11000010 0 Absolute call to label L.. r15 ← r15 – 2
memory[r15] ← PC + 2
PC ← memory[PC]
loadi V, rD 11100001 D 0 Load immediate value or address V into
register rD.
rD ← memory[PC]
PC ← PC + 2
Note that in the case of extended instructions, the label L or value V are encoded as a single word (16-bit
value) following the word containing the instruction. The 0 in the encodings above represents a 4-bit 0
vector.
An assembler is provided for you to use (if needed). Please see the manual at the end of the assignment.
The Xtra Translation Specification (IMPORTANT)
The binary translation is conducted in the following manner. The translator
1. Opens the specified file containing the X binary code.
2. Outputs a prologue (see below), which will be the same for all translations.
3. It then enters a loop that
a. Reads the next instruction from the binary
b. Decodes the instruction, and
c. Outputs the corresponding x86 assembly instruction(s). If the instruction is an extended,
an additional two bytes will need to be read.
d. The loop exits when the instruction composed of two 0 bytes is read.
4. Outputs an epilogue.
Prologue
The translator first outputs a simple prologue that is the same
for all translations. The prologue is shown on the right.
Epilogue
After the translator finishes translating, it outputs a simple epilogue that is the same for all translations. The epilogue is
shown on the right.
Translation
Each X instruction will need to be translated into
the corresponding instruction or instructions in
x86-64 assembly. See table on right for examples.
Most instructions will have a direct corresponding
instruction in x86 assembly so the translation will
be easy. Some instructions, like the equ, test, and cmp, instructions
may require multiple x86 instructions for a single X instruction.
Note: The translator will need to perform a register mapping.
Register Mapping
The X architecture has 16 general and the F status register. In x86-64
there are also 16 general purpose registers. The register mapping on
the right must be used when translating from X to x86-64. Note that
for this exercise register r13 will not be used by the X executables. Instead of r13 (X) being mapped to r15 (x86), the F register (X) is mapped
to register r15 (x86). Note: for this assignment, It is ok to map 16-bit
registers to 64-bit registers.
Debug mode STD and CLD
The std and cld X instructions enable and disable debug mode on
the X architecture. However, debug mode does not exist in x86-64.
Instead, when a std instruction is encountered, the translator should
set an internal debug flag in the translator and, clear the debug flag
when it encounters the cld instruction.
When the debug flag is true, the translator should output the assembly
code on the right before translating each X instruction.
Output and the OUT Instruction (For Task 2)
On the X architecture, the out rN instruction outputs to the screen the character stored in register rN.
However, no such instruction exists in x86-64. Instead, the out instruction is translated to a call to the
function outchar(char c), which performs this function. Recall that the first argument is passed in
register %rdi. Consequently, the corresponding translation code will need to save the current value of
%rdi on the stack, move the byte to be printed into %rdi, call outchar, and restore %rdi.
Your task will be to implement the Xtra binary translator which is used to translate into x86 assembly
programs assembled with the X assembler.
.globl test
test:
 push %rbp
 mov %rsp, %rbp
 pop %rbp
 ret
X Instruction Output x86 Assembly
mov r0, r1 mov %rax, %rdi
loadi 42, r0 mov $42, %rax
push r0 push %rax
add r0, r1 add %rax, %rdi
X Registers x86 Registers
r0 %rax
r1 %rbx
r2 %rcx
r3 %rdx
r4 %rsi
r5 %rdi
r6 %r8
r7 %r9
r8 %r10
r9 %r11
r10 %r12
r11 %r13
r12 %r14
F %r15
r14 %rbp
r15 %rsp
 call debug
Task 1: Implement the Simple Xtra
Your first task is to implement a simple version of the translator that works for the simple instructions.
The source file main.c should contain the main() function. The translator should:
1. Take one (1) argument on the command line: The argument is the object/executable file of the
program to translate. For example, the invocation
./xtra hello.xo
instructs the translator to translate the program hello.xo into x86-64 assembly.
2. Open for reading the file specified on the command-line.
3. Output (to stdout) the prologue.
4. In a loop,
a. Read in instruction.
b. If the instruction is 0x00 0x00, break out of the loop.
c. Translate the instruction and output (to stdout) the x86-64 assembly.
5. Output (to stdout) the epilogue.
Input
The input to the program is via the command line. The program takes one argument, the name of the file
containing the assembled X code.
Processing
All input shall be correct. All program files shall be at most 65536 bytes (64KB). The translator must be
able to translate all instructions except:
Instruction Description
ret Return from a procedure call.
br L Branch relative to label L if condition bit is true.
jr L Jump relative to label L.
jmp L Absolute jump to label L.
call L Absolute call to label L.
load rS , rD Load word into register rD from memory pointed to by register rS.
stor rS , rD Store word from register rS to memory at address in register rD.
loadb rS , rD Load byte into register rD from memory pointed to by register rS.
storb rS , rD Store byte from register rS to memory at address in register rD.
out rS Output character in rS to stdout.
Recommendation: While no error checking is required, it may be helpful to still do error checking, e.g.,
make sure files are properly opened because it will help with debugging as well.
Output
Output should be to stdout. The output is the translated assembly code. The format should ATT style
assembly. The exact formatting of the assembly is up to you, but the assembly code will be passed through
the standard assembler (as) on timberlea. See next section for how to test your code. (See example)
Testing
To test your translator, the test scripts will assembler, link, and run the translated code! J A runit.sh
script is provided. The script takes an X assembly file as an argument:
./runit.sh foo.xas
The script:
1. Assembles the .xas file with the provided (xas) to create a .xo file.
2. Runs xtra on the .xo file, to create a corresponding x86 .s assembly file.
3. Assembles, compiles, and links the generated assembly file with some runner code, creating an
executable. The runner is composed of runner.c, regsdump.s, and the translated .s file.
Please DO NOT delete the first two files.
4. Runs the executable.
This script is used by the test scripts and is also useful for you to test your code.
Most of the tests use the std instruction to turn on debugging and output the state of the registers after
each instruction is executed. For most of the tests the output being compared are the register values.
Example
Original X assembly code Translated x86 code
 loadi 2, r0
 loadi 3, r1
 loadi 4, r2
 loadi 5, r3
 loadi 7, r5
 std # turn debugging on
 add r2, r3
 mul r2, r1
 cld # turn debugging off
 neg r0
 inc r5
.literal 0
.globl test
test:
 push %rbp
 mov %rsp, %rbp
 mov $2, %rax
 mov $3, %rbx
 mov $4, %rcx
 mov $5, %rdx
 mov $7, %rdi
 call debug
 add %rcx, %rdx
 call debug
 imul %rcx, %rbx
 call debug
 neg %rax
 inc %rdi
 pop %rbp
 ret
Task 2: The Full Translator
Your second task is to extend xtra to translate the instructions exempted in Task 1. Implement translation for the following instructions.
Instruction Description
ret Return from a procedure call.
br L Branch relative to label L if condition bit is true.
jr L Jump relative to label L.
jmp L Absolute jump to label L.
call L Absolute call to label L.
load rS , rD Load word into register rD from memory pointed to by register rS.
stor rS , rD Store word from register rS to memory at address in register rD.
loadb rS , rD Load byte into register rD from memory pointed to by register rS.
storb rS , rD Store byte from register rS to memory at address in register rD.
out rS Output character in rS to stdout.
Input
The input is the same as Task 1.
Processing
The processing is the same as for Task 1. The challenge is that translation is a bit more challenging.
First, for many of the additional instructions you will need to emit more than one assembly instruction.
This is particularly true for the conditional branching and output instructions.
Second, for the branching instructions you will need to compute the labels where to branch to. The easy
solution is to create a label for each instruction being translated. The label should encode the address in
the name. For example, L1234 would be the label for the X instruction at address 1234. By doing this,
you will not need to keep a list or database of labels.
Third, the addresses used by the load and store are full 64-bit values.
Output
The output is the same as Task 1.
Example
Original X assembly code Translated x86 code
 loadi 1, r0
 jmp j1
j2:
 loadi 3, r0
 jmp j3
j1:
 loadi 2, r0
 jmp j2
j3:
 std # turn debugging on
 loadi 4, r0
.literal 0
.globl test
test:
 push %rbp
 mov %rsp, %rbp
.L0000:
 mov $1, %rax
.L0004:
 jmp .L0010
.L0008:
 mov $3, %rax
.L000c:
 jmp .L0018
.L0010:
 mov $2, %rax
.L0014:
 jmp .L0008
.L0018:
.L001a:
 call debug
 mov $4, %rax
.L001e:
 call debug
 pop %rbp
 ret
Hints and Suggestions • Use the unsigned short type for all registers and indices.
• Use two files: one the main program and one for the translator loop.
• Start early, this is the hardest assignment of the term and there is a lot to digest in the assignment
specifications.
Assignment Submission
Submission and testing are done using Git, Gitlab, and Gitlab CI/CD. You can submit as many times as you
wish, up to the deadline. Every time a submission occurs, functional tests are executed, and you can view
the results of the tests. To submit use the same procedure as Assignment 0.
Grading
If your program does not compile, it is considered non-functional and of extremely poor quality, meaning you will receive 0 for the solution.
The assignment will be graded based on three criteria:
Functionality: “Does it work according to specifications?”. This is determined in an automated fashion by
running your program on several inputs and ensuring that the outputs match the expected outputs. The
score is determined based on the number of tests that your program passes. So, if your program passes
t/T tests, you will receive that proportion of the marks.
Quality of Solution: “Is it a good solution?” This considers whether the approach and algorithm in your
solution is correct. This is determined by visual inspection of the code. It is possible to get a good grade
on this part even if you have bugs that cause your code to fail some of the tests.
Code Clarity: “Is it well written?” This considers whether the solution is properly formatted, well documented, and follows coding style guidelines. A single overall mark will be assigned for clarity. Please see
the Style Guide in the Assignment section of the course in Brightspace.
The following grading scheme will be used:
Task 100% 80% 60% 40% 20% 0%
Functionality
(20 marks) Equal to the number of tests passed.
Solution Quality
Task 1
(15 marks)
Implemented
correctly. Code
is robust.
Implemented correctly. Code is not
robust.
Some minor bugs. Major flaws in
implementation
An attempt
has been
made.
code
No code submitted or
does not compile
Solution Quality
Task 2
(5 marks)
Implemented
correctly. Code
is robust.
Implemented correctly. Code is not
robust.
Some minor bugs. Major flaws in
implementation
An attempt
has been
made
Code Clarity
(10 marks)
Indentation, formatting, naming,
comments
Code looks professional and follows all style
guidelines
Code looks good
and mostly follows style guidelines.
Code is mostly
readable and
mostly follows
some of the style
guidelines
Code is hard to
read and follows few of the
style guidelines
Code is not
legible
Assignment Testing without Submission
Testing via submission can take some time, especially if the server is loaded. You can run the tests without
submitting your code by using the provided runtests.sh script. Running the script with no arguments
will run all the tests. Running the script with the test number, i.e., 00, 01, 02, 03, … 09, will run that specific
test. Please see below for how run the script.
Get your program ready to run
If you are developing directly on the unix server,
1. SSH into the remote server and be sure you are in the xtra directory.
2. Be sure the program is compiled by running make.
If you are using CLion
1. Run your program on the remote server as described in the CLion tutorials.
2. Open a remote host terminal via Tools → Open Remote Host Terminal
If you are using VSCode
1. Run your program on the remote server as described in VSCode tutorials.
2. Click on the Terminal pane in the bottom half of the window or via Terminal → New Terminal
Run the script
3. Run the script in the terminal by using the command:
./runtest.sh
to run all the tests, or specify the test number to run a specific test, e.g. :
./runtest.sh 07
You will see the test run in the terminal window.
The X Assembler (xas)
An assembler (xas) is provided to allow you to write and compile programs for the X Architecture. To
make the assembler, simply run “make xas” in the xtra directory. To run the assembler, specify the
assembly and executable file on the command-line. For example,
./xas example.xas example.xo
Assembles the X assembly file example.xas into an X executable example.xo.
The format of the assembly files is simple.
1. Anything to the right of a #    mark, including the #, is considered a comment and ignored.
2. Blank lines are ignored.
3. Each line in the assembly file that is not blank must contains a directive, a label and/or an instruction. If the line contains both a label and an instruction, the label must come first.
4. A label is of the form
identifier:
where identifier    consists of any sequence of letters (A-Za-z), digits (0-9), or underscores ( ) as long
the first character is not a digit. A colon (:) must terminate the label. A label represents the corresponding location in the program and may be used to jump to that location in the code.
5. An instruction consists of a mnemonic, such as add, loadi, push, etc., followed by zero or more
operands. The operand must be separated from the mnemonic by one or more white spaces.
Multiple operands are separated by a comma.
6. If an operand is a register, then it must be in the form r#    where # ranges between 0 and 15 inclusively. E.g., r13.
7. If the instruction is an immediate, then the argument may either be a label, or an integer. Note:
labels are case-sensitive. If a label is specified, no colon should follow the label.
8. Directives instruct the assembler to perform a specific function or behave in a specific manner.
All directives begin with a period and are followed by a keyword. There are three directives: .literal, .words    and .glob, each of which takes an operand.
(a) The .literal directive encodes a null terminated string or an integer at the present
location in the program. E.g.,
mystring:
.literal "Hello World!"
myvalue:
.literal 42
encodes a nil-terminated string followed by a 16-bit (1 word) value representing the decimal value 42. In this example, there are labels preceding each of the encodings so that it
is easy to access these literals. That is, the label mystring represents the address (relative to the start of the program) where the string is encoded, and the label myvalue
represents the address (relative to the start of the program) of the value. This is used in
the hello.xas example.
(b) The .words directive sets aside a specified number of words of memory at    the    present    
location    in    the    program. E.g.,
myspace:
.words 6
allocates 6 words of memory at the present point in the program. This space is not initialized to any specific value. Just as before, the label preceding the directive represents the
address of the first word, relative to the start of the program. This is used in xrt0.xas    to
set aside space for the program stack.
(c) The .glob directive exports the specified symbol (label) if it is defined in the file and
imports the specified symbol (label) if it is used but not defined in the file. E.g.,
.glob foo
.glob bar
...
loadi bar, r0
...
foo:
 .literal "Hello World!"
declares two symbols (labels) foo    and    bar.    Symbol    foo    is    declared    in    this    file,    so    it    will    
be    exported    (can    be    accessed)    in    other    files.    The    latter    symbol,    bar,    is    used    but    not    
defined.    When    this    file    is    linked,    the    linker    looks    for    the    symbol    (label)    definition    in    
other    files    makes    all    references    to    the    symbol    refer    to    where    it    is    defined.    
Note: it is recommended that you place literals and all space allocations at the end of your program, so
that they will not interfere with program itself. If you do place literals in the middle of your program, you
will need to ensure that your code jumps around these allocations.
There are several example assembly files provided (ending in .xas). You can assemble them by invoking
the assembler, for example:
./xas example.xas example.xo
This invocation will cause the assembler to read in the file example.xas and generate an output
file example.xo. Feel free to look at the code for the assembler. 

請加QQ:99515681  郵箱:99515681@qq.com   WX:codehelp 












 

標簽:

掃一掃在手機打開當前頁
  • 上一篇:代寫CSci 4061、c/c++,Java程序代做
  • 下一篇:COMP S380F代做、SQL語言程序代寫
  • 無相關信息
    昆明生活資訊

    昆明圖文信息
    蝴蝶泉(4A)-大理旅游
    蝴蝶泉(4A)-大理旅游
    油炸竹蟲
    油炸竹蟲
    酸筍煮魚(雞)
    酸筍煮魚(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚
    香茅草烤魚
    檸檬烤魚
    檸檬烤魚
    昆明西山國家級風景名勝區
    昆明西山國家級風景名勝區
    昆明旅游索道攻略
    昆明旅游索道攻略
  • NBA直播 短信驗證碼平臺 幣安官網下載 歐冠直播 WPS下載

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 kmw.cc Inc. All Rights Reserved. 昆明網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    主站蜘蛛池模板: 男男做爰猛烈啪啪高 | 成人资源在线观看 | 志在出位国语完整在线观看 | 亚洲高清毛片 | 调教撅屁股啪调教打臀缝av | 国产一级在线 | 狠狠干狠狠干 | 91国在线啪| 五月激情四射网 | 免费成人在线观看视频 | 美日韩中文字幕 | 一区二区免费在线观看 | 日本一区久久 | 国产黄色网页 | 一区二区三区福利视频 | 欧美人伦| 午夜特级毛片 | 伊人蕉 | 欧美男人天堂网 | 婷婷视频在线观看 | 在线天堂中文字幕 | 少妇高潮一区二区三区99 | 91热热| 尤物在线精品 | 亚洲综合免费视频 | 日韩av综合网 | 日韩网站免费观看 | 色哟哟在线| 日本三级2019 | 理论片中文字幕 | www,色| 日本一级淫片 | 在线观看视频一区二区三区 | 91成人免费看 | 亚洲精品成人网 | 永久在线视频 | 都市激情综合 | 成人区精品一区二区婷婷 | 在线不欧美 | 青青在线视频 | 欧美亚洲精品天堂 | 日韩三级小视频 | 日本高清视频在线播放 | 久久亚洲成人av | 半推半就一ⅹ99av | 国产精品一二三区 | 亚洲黄页在线观看 | 欧美日韩在线免费视频 | 亚洲第一福利视频 | 激情成人av| 男女激情四射网站 | 中文成人无字幕乱码精品区 | 国产三级自拍 | 色久影院 | 国产福利91精品 | 懂色av中文一区二区三区天美 | 青青草伊人 | 国产精品久久久久精囗交 | 国产一区二区三区久久 | 爽爽影院在线免费观看 | 久久综合伊人77777麻豆 | 精精国产xxxx视频在线观看 | 国产精品欧美激情 | 日韩3区 | 亚洲精品1234 | 日韩精品一区二区在线 | 人人干人人爽 | 亚洲欧美日韩国产一区二区 | 全部毛片永久免费看 | 亚洲第三区| 亚洲国产精品一区 | 进去里片欧美 | 欧美一区二区日韩 | 国产精品一区二区三区免费视频 | 久久成人福利 | 中文字幕激情 | 国产91免费在线观看 | 一级片网站视频 | 朝桐光在线播放 | 日韩黄色三级 | 免费午夜激情 | 日韩欧美激情视频 | 在线你懂得 | 成人国产影院 | 91视频在线视频 | 国产美女三级无套内谢 | 嫩草综合 | 黄色wwww| 91成人国产 | 中文字幕日本视频 | 中文字幕在线观看不卡视频 | 亚洲一区二区激情 | 在线中文字幕网站 | 一级成人免费 | 中文字幕免费在线播放 | www.69pao.com| 在线免费黄 | 国产午夜一级 | 国产免费网址 | 亚洲精品成a人在线观看 | 亚洲大片在线观看 | 波多野结衣高清在线 | 大黄毛片 | 欧美日韩成人 | 亚洲高清视频在线播放 | 日本黄页网站免费大全 | 亚洲一区二区视频播放 | 亚洲少妇网站 | 爱色av·com | 自拍偷拍99 | 国产无人区码熟妇毛片多 | 成人自拍av | 四虎福利视频 | 成年人免费视频观看 | 亚洲激情影院 | 91蝌蚪91密月| 老司机午夜免费视频 | 少女情窦初开的第4集在线观看 | 国产精品porn | 中文字幕在线观看你懂的 | 97精品一区二区 | 97人人看 | 丰满岳妇乱一区二区三区 | 少妇一区二区三区四区 | 欧美日韩美女 | 亚洲免费观看高清完整 | 久久色网 | 亚洲欧美日韩影院 | 免费黄色高清视频 | 激情av一区| 午夜激情小视频 | 色精品| 欧美精品免费在线 | 精久久久久久 | 久久九九99 | 91桃色在线观看 | 香蕉av网| 欧美成人一区二区三区四区 | 国内自拍av | 欧美特级黄色大片 | 亲子乱对白乱都乱了 | 九九热在线观看视频 | 日本天堂在线播放 | 91福利在线视频 | 丰满少妇在线观看资源站 | 亚洲成年人片 | 婷婷六月激情 | 亚洲欧美专区 | 中文字幕在线观看视频地址二 | 午夜在线国语中文字幕视频 | 一女三黑人理论片在线 | 国产富婆一级全黄大片 | 一色屋精品久久久久久久久久 | bbbbbxxxxx性欧美| 亚洲资源网 | 91在线精品一区二区 | 亚洲精品乱码久久久久久蜜桃不爽 | 国产成人精品一区二区三区四区 | 国产精品成人一区二区网站软件 | 黄瓜污视频在线观看 | 五月天在线播放 | 波多野结衣精品 | 成年免费在线观看 | 青青草小视频 | 中文字幕伊人 | 欧美人狂配大交3d | 国产一区自拍视频 | 最新视频–x99av| 青青青在线视频 | 欧美图片一区二区三区 | 欧美bbw视频 | 亚洲一区二区国产 | 波多野结衣在线观看视频 | 亚洲爱视频 | 日本在线黄色 | 色哟哟精品观看 | 自拍偷拍第八页 | 91av在线播放视频 | 尤物视频在线播放 | 成人六区| 中文字幕高清在线观看 | 高清中文字幕av | 亚洲影院一区二区三区 | 免费吸乳羞羞网站视频 | av在线播放观看 | 人人夜| 婷婷色图| 色综合精品 | 91精品久久久久久粉嫩 | 午夜激情影院 | 国产乱淫视频 | xxxx国产片 | 亚洲精品高清在线 | 亚洲天堂影音先锋 | 亚洲欧美另类在线观看 | 日韩中文字幕网站 | 亚洲视频播放 | 六月色播 | 亚洲成人福利 | 欧美三级三级三级爽爽爽 | www.男人天堂 | 97久久精品人人澡人人爽 | 亚洲在线视频一区 | 中国一及毛片 | 大桥未久视频在线观看 | 成人激情在线 | 欧美亚洲三级 | 日本特黄特色aaa大片免费 | 国产午夜视频在线观看 | 欧美在线一区二区三区 | 国产亚洲欧美精品久久久久久 | a级亚洲 | 天堂在线中文 | 欧美偷拍另类 | 啪啪免费网站 | 丁香激情网 | 人妻毛片 | 色窝av | 夜色网| 国产精品www色诱视频 | 91官网在线观看 | 精品一区在线 | a在线观看| 天天干天天操天天干 | 亚洲国产精品久久久久久久 | 夜先锋av资源网站 | 黄色性视频网站 | 奇米影视色 | 亚洲视频在线观看 | 最新亚洲视频 | 51国产偷自视频区免费播放 | 亚洲欧美激情在线 | 免费成人深夜夜 | 加勒比视频在线观看 | 国产欧美一区二区三区精品酒店 | 成人黄色在线看 | 99热免费在线 | 国内偷拍久久 | 中文字幕在线不卡视频 | www.成人| 日韩av在线网站 | 亚洲美女偷拍 | 日韩激情视频在线 | 国产福利精品在线 | 91免费视频网址 | 成人av久久 | 日韩av色图 | 国产免费一区二区三区在线观看 | 天天躁日日躁bbbbb | 国产免费91 | 欧美国产在线看 | 五月婷婷激情五月 | 免费全黄一级裸体片 | 久久国产视频一区 | 国产色综合天天综合网 | 欧美日韩在线播放 | 性猛交富婆╳xxx乱大交天津 | 天堂久久精品 | 一区二区久久久久 | 国产毛片在线视频 | 国产传媒视频 | 亚洲另类自拍 | 欧美福利在线 | www.久久网 | 一区二区三区久久 | 亚洲少妇自拍 | 久草国产在线观看 | 成人免费视频国产免费网站 | 天天射日日射 | 超碰人人做 | 91精品国产综合久久久蜜臀九色 | 一级α片免费看刺激高潮视频 | 久久99久久精品久久久久久 | 黄色性生活一级片 | 亚洲国产精品成人va在线观看 | 最新国产中文字幕 | 天天色综 | 亚洲乱码国产乱码精品精的特点 | 亚洲女同中文字幕 | theav精尽人亡av | 久久国产精品免费一区二区三区 | 成人在线综合 | 婷婷亚洲综合 | 另类欧美亚洲 | 久久久视频在线 | 天天插天天干天天操 | 在线观看精品一区 | 亚洲久久天堂 | 欧美 日韩 中文字幕 | 亚洲欧美精品一区 | 久久一区二区三区精品 | 亚洲v国产v欧美v久久久久久 | 日韩欧美一级视频 | 精品少妇一区二区 | 国产精品15p | 久久久久69 | 老牛影视一区二区三区 | 午夜日韩欧美 | 91网页在线观看 | 大香伊人中文字幕精品 | 看特级黄色片 | 欧美激情在线观看 | 精品第一页 | 午夜亚洲天堂 | 国产黄a三级三级三级看三级男男 | 爱色av.com| 国产性xxx | 男同毛片 | 秋霞午夜视频 | 黄色小说网站在线观看 | 国产国拍精品亚洲 | 亚洲影库 | 中文字字幕在线中文乱码 | 日韩中文在线视频 | 欧美偷拍亚洲 | 绯色av一本一道道久久精品 | 久久午夜国产 | 在线成人播放 | 日韩免费看 | 亚洲第一在线视频 | 国产三区在线播放 | 亚洲精品一区二区三区区别 | 青草av在线 | 国产精品久久久久久久久久久久久久不卡 | 夜夜骚av| 精品一区中文字幕 | 国产精品久久777777换脸 | 男人天堂视频在线观看 | 天天射夜夜 | 久久免费高清视频 | 国产网站黄| 91网站在线看 | 超碰国产97 | 91久热 | 日本xxx在线观看 | 四虎影视黄色 | 国产在线一级片 | 国产三区精品 | 91精品导航| 少妇久久久久久久 | 五月情婷婷 | 国产精品国产三级国产专业不 | 欧美一级性 | 久草国产精品视频 | 在线看不卡av | va婷婷在线免费观看 | 快播久久| 日本丰满少妇 | 精品成人一区 | 日本中文字幕免费 | 色黄大色黄女片免费中国 | 人人干在线视频 | 亚洲国产欧美视频 | 天天干夜夜骑 | 国产精品s | 国产三级精品三级在线观看 | 日婷婷| jlzzjlzz欧美大全 | 午夜激情网 | 国产麻豆一精品一男同 | 五月天激情开心网 | 成av人片在线观看www | 国产精品国色综合久久 | 日本在线免费观看视频 | 一区二区三区四区视频在线观看 | 日韩国产在线观看 | www五月天com | 欧美国产日韩精品 | 亚洲一级黄色大片 | 欧美日韩国产一区二区 | 天天插天天射 | 国产成人在线观看免费 | 浮力影院国产第一页 | 一区二区视频在线免费观看 | 91蜜桃视频在线观看 | 日韩另类视频 | 激情婷婷网 | 久久精品在这里 | 国产精品不卡 | 欧美乱强伦 | 成年人午夜视频 | 国产视频分类 | 开心激情播播网 | 老司机午夜精品 | 亚洲精品另类 | 亚洲成人高清 | 日韩成人专区 | 天天综合永久 | 欧美自拍偷拍第一页 | 青青视频二区 | 最新不卡av | wwwxxxx在线观看 | 在线播放一级片 | 久久性生活视频 | 最新中文字幕免费 | 国产精品自产av一区二区三区 | 欧美一区一区 | av不卡免费在线观看 | 日日夜夜国产 | 亚洲精品久久久狠狠狠爱 | 国产亚洲欧美在线 | 亚洲一级在线观看 | www.成人在线 | 日韩美av| 国产最新地址 | 成人高清视频免费观看 | 国产20页| 国产高清sp | 中文字幕一区二区不卡 | 天天操天天添 | 国产白丝精品91爽爽久久 | 在线观看91 | 久久依人网 | 久久精品123 | 久久久久久久网站 | 久草小说 | 欧美激情视频网 | 日韩黄色一区 | 天天爽夜夜爽夜夜爽精品 | 亚洲精品色播 | 亚洲国产精华液网站w | 亚洲综合视频在线观看 | 久久国产视频播放 | 国产裸体视频网站 | 一区二区免费在线观看视频 | 欧美成人综合一区 | 国产高清自拍视频 | 一色桃子juy699在线播放 | 国产在线精品成人免费怡红院 | 国产欧美日韩在线视频 | 日韩成人精品在线观看 | 一本久久久久 | 在线播放网址 | 精品国产一区在线观看 | 日韩污视频在线观看 | 国产a区| 中文字幕三区 | 久久精品视频在线观看 | 亚洲国产成人在线 | 精品卡一卡二卡3卡高清乱码 | 亚色在线视频 | 日韩av一区二区在线 | 老鸭窝久久 | 久日精品视频 | 99热1 | 久久泄欲网 | 茄子爱啪啪 | 女同性恋一区二区三区 | 婷婷色在线观看 | 亚洲永久免费 | 婷婷精品进入 | 久久免费看少妇高潮av影视 | 啦啦啦免费高清视频在线观看 | www.日本黄色 | 天天射夜夜爽 | 亚洲va国产天堂va久久 en | 国产精品国产一区二区三区四区 | 中文字幕视频在线观看 | 善良的女邻居在线观看 | 亚洲国产91 | 国产不卡一区 | 欧美大喷水吹潮合集在线观看 | 久久艹网站 | 国偷自产av一区二区三区 | 成人免费视频毛片 | 精品一区视频 | 国产精品乱码一区二三区小蝌蚪 | 久久在线 | 日av在线播放 | 99视频在线免费观看 | 国产77777| 国产精品suv一区二区 | 日韩毛片一区二区三区 | 91在线免费看片 | 日韩激情一区 | 久久视频黄色 | 久久久久久久9999 | xxx日本黄色| 男女激情啪啪 | wwwxx国产| 成人福利视频在 | 中文在线观看视频 | 小视频国产 | cao在线视频 | 成人免费福利视频 | 日本三级欧美三级 | 三级亚洲欧美 | 四虎影院永久地址 | av免费观看久久 | 不卡视频一区二区三区 | 四虎久久久 | 日韩精品欧美激情 | 95久久 | 精品国产一区二区三区久久狼黑人 | 亚洲伊人久久影院 | 成人免费看片98欧美 | 性欧美大战久久久久久久83 | 超碰1997| 国产成人av网 | 国产视频分类 | 青青伊人国产 | 杨贵妃颤抖双乳呻吟求欢小说 | 香蕉大人久久国产成人av | 最新中文字幕在线 | 毛片毛片毛片毛片毛片毛片 | 成人午夜激情视频 | 国产福利在线视频 | 激情久久网 | 一级黄色大片免费观看 | 亚洲激情视频在线免费观看 | 男人天堂avav| 国产毛片毛片毛片毛片毛片 | 在线播放少妇奶水过盛 | 亚洲又粗又长 | 中文字幕mv | 黄色一级大片免费版 | 柠檬av导航 | 一级做a爰片久久 | 91福利在线观看 | 91禁蘑菇在线看 | 亚洲一区视频 | 插插看看| 奇米影视77777| 午夜一区二区三区 | 免费av网址大全 | 狠狠操在线 | 一区二区免费在线观看视频 | 中文视频在线 | 国产在线一区视频 | 在线成人日韩 | www色婷婷| 五月激情六月婷婷 | 暴力日本video | 99国产精品一区 | 国产一区99 | 中国女人和老外的毛片 | 欧美成人tv| 亚洲热影院 | 亚洲午夜久久久久久久久红桃 | 午夜精品久久久久久久99 | 国产精品女教师久久二区二区 | 欧美精品第二页 | 久久精品视频日本 | 中文字幕在线观看视频一区 | 欧美日韩网站 | 久久久精品视频在线 | 嫩操影院| 久久久福利 | 日韩精品一级 | 亚欧成人 | 青青草国产在线视频 | 欧美三级精品 | 午夜免费观看视频 | 成人91在线观看 | 亚洲美女一黄大片 | 超碰在线综合 | 蜜桃麻豆视频 | 国产又粗又猛又爽又黄的 | 国产色一区 | 自拍偷拍精品 | 91视频一区| 欧美一区二区在线看 | 六月婷婷在线 | 国产16处破外女视频在线 | 黄色国产在线观看 | 欧美三级一区二区三区 | 九九亚洲精品 | 色综合天天综合网国产成人网 | 天堂岛av | 欧美激情精品久久久久久 | 五月天综合久久 | 日日日日干 | 精品日韩欧美 | 国产日韩欧美视频 | 成人在线视频观看 | 成人精品喷水视频www | 亚洲天堂视频在线免费观看 | 狠狠操夜夜 | 久久国产精品影视 | 日韩资源 | 午夜影院0606 | 在线观看毛片的网站 | 毛片看看| 国产一级片一区二区 | 成人精品免费在线观看 | 波多野结衣视频免费 | 亚洲综合日韩 | 激情免费网站 | 美女插插 | 超碰99在线 | 亚洲成人精品一区二区三区 | aaa级黄色片 | www日本在线观看 | 超污视频在线观看 | 爱操影院| 青青草网址 | 日韩欧美高清在线 | 亚洲第一天堂在线观看 | 婷婷一级片 | 国产在线视频网站 | 公肉吊粗大爽色翁浪妇视频 | av国产成人 | 性色av一区二区三区四区 | 国产精品一二区在线观看 | 91欧美精品 | 永久免费未满男 | 日韩欧美视频在线播放 | 精品视频在线观看 | 人人干天天操 | 97人人人 | 99热高清| 香蕉视频免费网站 | 性欧美亚洲xxxx乳在线观看 | 天天操夜夜撸 | 狠狠干in| 91精品国产91久久久久久久久久久久 | 日韩中文字幕精品视频 | www.爆操| 黄瓜视频色版 | 亚洲精品www久久久 成人午夜视频在线免费观看 | 久久久久国产一区二区 | www,色| 伊人久久av| av毛片在线播放 | 青青草亚洲 | 波多野吉衣久久 | 成人综合精品 | 伊伊成人 | 亚洲专区欧美 | av在线免费在线观看 | 亚洲性大片| 久久精品国产免费 | 成人午夜淫片免费观看 | 久久大奶 | 一区二区三区精品在线观看 | 欧美第一网站 | 国产精品美女久久久久av超清 | 美女视频在线观看免费 | 伊人网站在线观看 | 久久久久久成人 | 久久午夜鲁丝片午夜精品 | 日韩经典在线观看 | 日韩综合一区 | 精品久久亚洲 | 夜夜躁日日躁狠狠久久av | 亚洲激情图 | 亚洲砖区免费 | 久久蜜桃香蕉精品一区二区三区 | 一二级毛片 | 久久这里有精品视频 | 国产乱码精品一区二三赶尸艳谈 | 曰批视频在线观看 | 亚洲欧美天堂网 | 在线观看黄色网页 | 亚洲夜夜夜| 亚洲国产精品系列 | 国产在线高清视频 | 成人日韩欧美 | 天天射干| 91桃色网站 | 欧美日韩精品一区二区在线播放 | 国产999精品久久久久久 | 97精品一区二区三区 | 懂色av一二三三区免费 | 国产亚洲精品久久久 | 三级视频国产 | 中文一区在线 | 亚洲国产精品精华液com | 日韩精品无码一区二区三区 | 永久免费看片在线播放 | 国产午夜精品久久久久久免费视 | 久久人人精 | 亚洲欧美日韩国产精品一区午夜 | 人人澡人人澡人人澡 | 香蕉视频在线视频 | www在线| 日韩中文字幕在线免费观看 | 午夜不卡av免费 | 成人在线综合 | 午夜在线国产 | 中文一二三区 | 日韩高清精品免费观看 | 亚洲黄色精品视频 | 粉嫩av| 91福利视频免费观看 | 国产特级淫片免费看 | 国产伦精品一区二区三区在线播放 | 一级免费大片 | 米奇狠狠干| 高清一区二区三区视频 | 成人做受黄大片 | av资源免费观看 | 国产成人a v | 成人日韩在线 | 亚洲作爱 | 超碰在线97国产 | 狠狠艹 | 日韩一级片免费观看 | 欧美午夜性春猛交 | 色无极影院亚洲 | 六月丁香久久 | a√天堂中文| 操丰满女人| 亚洲精品午夜国产va久久成人 | 久久综合中文字幕 | 亚洲第一av | 少妇高潮一区二区三区99小说 | 男人在线视频 | 免费一区二区三区 | 日批在线观看视频 | 亚州综合 | 国产精品久久久久久久一区探花 | 91欧美在线 | 国产一区二区三区影院 | 日韩欧美亚 | 伊人影院综合 | 国产精品s | 人人干天天操 | 亚洲午夜久久久久 | 黑人一级黄色片 | 欧美偷拍亚洲 | 久久久久久国产精品视频 | 久久久久久黄色 | av影视在线| 国产五十路 | 国产高清sp | 久色网站 | 91福利一区| 五月婷在线视频 | av中文天堂在线 | 国产网站黄色 | 免费涩涩网站 | 伊人久久久 | 色婷婷一区二区三区 | 自拍偷拍亚洲区 | 吃奶在线观看 | 久久久久蜜桃 | 国产成人久久精品77777综合 | 91av在线网站 | 中文字幕在线永久 | 亚洲蜜桃av一区二区 | 欧美人与禽猛交乱配视频 | 久久免费看少妇高潮a | 久久不卡免费视频 | 日韩精品中文字幕在线 | 国产欧美精品在线 | 亚洲男人第一天堂 | 欧美日韩在线网站 | 高h喷汁呻吟3p | 国产精品xxx在线观看www | 影音先锋欧美色图 | 成人黄色av | 日日夜夜狠狠 | 午夜免费福利 | 欧美三日本三级少妇三99 | 国产精品久久777777毛茸茸 | 9l视频自拍九色9l视频成人 | 亚洲乱码国产乱码精品精软件 | 国产又黄又猛 | 中文字幕免| 久久精品国产精品亚洲毛片 | 日韩国产欧美视频 | 亚洲国产看片 | 国产精品一区二区三区在线 | 国产在线精品自拍 | 国产中文字幕视频 | 亚洲乱淫 | 另类综合视频 | av基地| 午夜激情男女 | www.夜夜操 | 亚洲激情 欧美 | 成人网一区 | 国产a一区 | 亚洲成a人片777777张柏芝 | 九一在线观看免费高清视频 | 96国产在线 | 亚洲无毛| 国产一区二区a | 色女仆影院 | 亚洲va中文字幕 | 欧美一区二区三区不卡视频 | 一区二区91| 黄色专区| 亚洲欧美日韩在线一区二区三区 | 婷婷六月丁 | 久久久久久久 | 成人香蕉网 | 免费av网址在线观看 | 成人六区 | 精品久久免费看 | 91视频.com| 丝袜一区二区三区 | 日韩在线色 | 午夜九九 | 色综合综合色 | 久热中文字幕 | 精品不卡视频 | 亚洲人在线观看视频 | 亚洲深夜在线 | 美女精品一区 | 日韩爆操 | 亚洲中字幕 | 911美女片黄在线观看游戏 | 国产激情在线免费观看 | 一级片免费看视频 | 黄色免费网站视频 | 中文字幕第一页在线 | 成人免费高清 | 久久中文在线 | 亚洲成在线 | 国产一级理论片 | av一区二区三区四区 | 337p亚洲欧洲色噜噜噜 | 草草在线视频 | av黄在线观看 | 亚洲国产免费 | 精品久久久久成人码免费动漫 | 日韩一级淫片 | av人人干| av午夜三片乱码少妇 | 日日精 | 精品国偷自产国产一区 | 国产色悠悠 | 欧美在线国产 | 欧美日韩精品在线播放 | 最新国产中文字幕 | 男人在线天堂 | 日韩一区二区在线观看视频 | 欧美日韩亚洲在线观看 | 日本欧美精品 | 免费在线 | 午夜一级大片 | 国产精品你懂的 | 欧美高清v | 欧美国产在线观看 | 蜜桃av噜噜一区二区三区麻豆 | 插吧插吧综合网 | 91成人在线免费观看 | 亚洲人成免费 | 国产精品九九九九九 | 日韩一区二区三区四区五区六区 | 在线国产黄色 | 精品亚洲在线 | 国产寡妇色xxⅹ交肉视频 | 国产一级在线 | xxx色| 午夜影视福利 | 日韩欧美国产一区二区三区在线观看 | 二级黄色录像 | 免费大片黄在线观看视频网站 | 一级做a爱片久久毛片 | 日韩久久久久久久久 | 亚洲精品一 | 午夜美女福利 | 丁香婷婷亚洲 | www.中文字幕av | 91精品一本久道久久丁香狠狠躁 | 亚洲一区国产一区 | 五月综合激情日本mⅴ | 日韩精品中文字幕在线播放 | 一级片久久久久久久 | 羞羞草影院 | 色综合91| m3u8成人免费视频 | 天天操夜夜骑 | 欧美亚洲国产一区 | 国产剧情久久 | 日韩亚洲一区二区三区 | 91精品国产91久久久久久吃药 | 青娱乐在线视频观看 | 三级国产视频 | 午夜影院0606 | 鸭子av | 91av社区 | 波多野结衣黄色网址 | 亚洲福利视频一区二区 | 国产高潮视频 | 蜜臀久久精品久久久久 | 日批网址 | 亚洲激情国产 | 五月综合视频 | 亚洲一区二区精品视频 | 日日夜夜操操操 | 在线毛片片免费观看 | 亚洲暴爽av天天爽日日碰 | 亚洲人掀裙打屁股网站 | 欧美日本韩国一区二区三区 | 国产91国语对白在线 | 国产精品视频一区二区三区四区国 | 欧美精品亚洲精品日韩精品 | 插吧插吧综合网 | 亚洲黄在线观看 | 亚洲欧美一区在线观看 | 亚洲精一区 | 精品亚洲成人 | 欧美性xxxx| 自拍亚洲综合 | 天天色天天看 | 久久久久9999 | 欧美极品一区 | 在线视频日韩 | 亚洲乱人伦 | 91干视频| a级片国产 | 成人黄色免费网站在线观看 | 水蜜桃久久 | 欧美三级小视频 | 久久最新网址 | 淫具馆(重口调教sm)小说 | 在线看成人片 | 免费观看91视频 | 操操操操操网 | 免费的三级网站 | 亚洲女成人图区 | 久久久久久久精 | 一级性爱视频 | 奇米成人影视 | 丁香婷婷综合激情五月色 | 91丨九色丨丰满 | 97久久久久久 | 欧美草逼视频 | 日本美女操| 99久久久国产精品免费蜜臀 | 亚洲高潮| 五月婷婷开心网 | 91麻豆网站 | 青青草手机在线观看 | 亚洲特黄特色 | 日本久久久久久久久久久 | 亚洲国产成 | 香蕉国产片一级一级一级一级 | 国产福利网站 | 日韩不卡中文字幕 | 亚洲综合色网 | 日本国产亚洲 | 午夜婷婷| 欧美性天天影院 | 99久久精品一区二区三区 | 亚洲图片自拍偷拍 | 国产日韩欧美亚洲 | 福利视频一区二区三区 | 成人av自拍 | av免费在线网站 | 国产精品久久久久久久久搜平片 | 日韩亚洲欧美综合 | 中文字幕在线免费播放 | 日韩欧美色图 | 国产又粗又猛又黄又爽的视频 | 曰本毛片| www.欧美成人 | 成人精品免费网站 | 国产黄色在线 | 战狼4在线观看 | 性色在线| 欧美a∨| 视频在线播 | 夜夜爽88888免费视频4848 | 一区二区三区免费在线观看视频 | 久久99久久99精品免观看粉嫩 | 91中文字幕视频 | 91免费成人| 亚洲高清视频在线观看免费 | 91麻豆国产 | 久久久久成人精品免费播放动漫 | 91视频1区 | 92精品| 国产精品igao视频网免费播放 | av在线官网 | 人成网站在线观看 | 日韩一区在线播放 | 在线免费观看高清视频 | 国产人久久人人人人爽 | 国产欧美二区 | 欧美色拍 | 成人tv | 婷婷综合色 | www.日韩欧美 | 国产欧美a| 国产视频亚洲精品 | 国产成人在线一区二区 | 国产一二三 | 一级性黄色片 | 最近2019中文字幕一页 | 精品国产污污免费网站入口爱酱 | 免费看黄色一级片 | 怡红院av久久久久久久 | 1769国产精品 | 中文在线视频观看 | 亚洲欧美综合网 | 尹人久久 | 一区二区三区久久久久 | 一本久道久久综合 | 韩漫动漫免费大全在线观看 | 一二三精品 | 日韩精品观看 | 亚洲天堂成人 | 色婷婷av一区二区三区之e本道 | 国产精品亚洲欧美在线播放 |