亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > ASM > 正文

ARM:?jiǎn)魏投嗉拇嫫骷虞d存儲(chǔ)、狀態(tài)寄存器、協(xié)處理、軟中斷、乘法、交換等匯編指令

2019-11-08 02:13:14
字體:
供稿:網(wǎng)友
ARM匯編指令大多數(shù)都可以條件執(zhí)行。條件存儲(chǔ)在NZCV位。1. 分支跳轉(zhuǎn)指令    b{l}{cond} <target>   // 相對(duì)跳轉(zhuǎn)指令,跳轉(zhuǎn)范圍±32M2. 數(shù)據(jù)處理指令    '移位操作    LSL / LSR/ ASR/ ROR / RRX    '數(shù)據(jù)傳輸指令    MOV{cond} {s} <Rd>, <Operand>        cond, 可以條件執(zhí)行        s, 操作結(jié)果可以影響N/Z/C        Rd,目標(biāo)寄存器        operand,三種狀態(tài):立即數(shù)、寄存器、寄存器移位后的值。    '算術(shù)運(yùn)算指令    add/adc{cond} {s} <Rd>, <Rm>, <operand>        s,影響NZCV位的取值        adc r0, r1, r2   @ r0=r1+r2+C    sub/sbc/rsb{cond} {s} <Rd>, <Rm>, <operand>        s,not,最高位沒有借位 C=1        sbc r0, r1, r2   @ r0=r1-r2-not(C)        rsb r0, r0, #0   @ r0=0-r0    '位操作指令    and/orr/eor/bic{cond} {s} <Rd>, <Rm>, <operand>        mov r0, #1        eor r0, r0, r1, lsl #10   @ 將r0寄存器的bit10位取反        bic r0, r0, r1, lsl #10    @ 將r0寄存器的bit10位清0     '比較測(cè)試指令     1)不用加s,默認(rèn)影響cpsr NZCV位     2)沒有目標(biāo)寄存器     cmp{cond} <Rm>, <operand>            cmp r0, r1  @ alu_out=r0-r1     tst{cond} <Rm>, <operand>            tst r0, #0x80   @ 測(cè)試r0的bit7位是否為0     teq{cond} <Rm>, <operand>            teq r0, #0x80   @ 測(cè)試兩個(gè)數(shù)據(jù)是否相等                                   @ alu_out=r0^0x803、加載存儲(chǔ)指令arm中所有的運(yùn)算都必須在通用寄存器(r0-r15)中完成。    加載:從RAM取數(shù)據(jù)到通用寄存器;    存儲(chǔ):將通用寄存器中的數(shù)據(jù)保存到RAM;3.1 單寄存器加載存儲(chǔ)指令    【加載】    mov r0, #0x40000000   ldr r1, [r0]     @// 將0x40000000開始的4字節(jié)數(shù)據(jù)加載到r1   ldrb r1, [r0]   @// 將0x40000000開始的1字節(jié)數(shù)據(jù)加載到r1,高3字節(jié)存儲(chǔ)0    ldrsb r1, [r0]  @// 將0x40000000開始的1字節(jié)數(shù)據(jù)加載到r1,高3字節(jié)存儲(chǔ)符號(hào)位    ldrh r1, [r0]    @// 將0x40000000開始的2字節(jié)數(shù)據(jù)加載到r1,高2字節(jié)存儲(chǔ)0    ldrsh r1, [r0]  @// 將0x40000000開始的2字節(jié)數(shù)據(jù)加載到r1,高2字節(jié)存儲(chǔ)符號(hào)位    ldrgtsh  LDRGTSH  '單寄存器加載存儲(chǔ)指令10種情況'    ldr r1, [r0]    @//[r0]--->r1    --------r0:基址寄存器-------------------------------    ldr r1, [r0, #0x08]     @//[r0+0x08]--->r1    ldr r1, [r0, r2]           @//[r0+r2]--->r1    ldr r1, [r0, r2, lsl #2]  @//[r0+r2*4]--->r1    --------!:更新基址-----------------------------------    ldr r1, [r0, #0x08]!     @//[r0+0x08]--->r1    r0=r0+0x08    ldr r1, [r0, r2]!           @//[r0+r2]--->r1        r0=r0+r2    ldr r1, [r0, r2, lsl #2]!  @//[r0+r2*4]--->r1    r0=r0+r2*4    -------------------------------------------------------    ldr r1, [r0], #0x08     @//[r0]--->r1    r0=r0+0x08    ldr r1, [r0], r2           @//[r0]--->r1    r0=r0+r2    ldr r1, [r0], r2, lsl #2  @//[r0]--->r1    r0=r0+r2*4    【存儲(chǔ)】    mov r0, #0x40000000   strr1, [r0]    @//r1--->[r0]    strb r1, [r0]   @//將r1最低的1個(gè)字節(jié)存儲(chǔ)到0x40000000開始的內(nèi)存中    strh r1, [r0]   @//將r1最低的2個(gè)字節(jié)存儲(chǔ)到0x40000000開始的2字節(jié)內(nèi)存空間中    'STR{cond} {b/h} <Rn>, <address_mode>    str r1, [r0]    -------------------------------------------------------    str r1, [r0, #0x08]       @//r1--->[r0+0x08]    str r1, [r0, r2]             @//r1--->[r0+r2]    str r1, [r0, r2, lsl #2]    @//r1--->[r0+r2*4]    -------------------------------------------------------    str r1, [r0, #0x08]!       @//r1--->[r0+0x08]    str r1, [r0, r2]!             @//r1--->[r0+r2]    str r1, [r0, r2, lsl #2]!    @//r1--->[r0+r2*4]    -------------------------------------------------------    str r1, [r0], #0x08       @//r1--->[r0]    r0=r0+0x08    str r1, [r0], r2             @//r1--->[r0]    r0=r0+r2    str r1, [r0], r2, lsl #2    @//r1--->[r0]    r0=r0+r2*4練習(xí):    實(shí)現(xiàn)memcpy的匯編代碼。    將0x8e00開始的16個(gè)字節(jié)拷貝到0x8f00開始的內(nèi)存空間中去。
/** 代碼演示  - memcpy.s **/.text.global _start.global memcpy.code 32_start:@ 將0x00008e00開始的16個(gè)字初始化成1-16mov  r0, #0x00008e00mov  r1, #1mov  r2, #16set_loop:str  r1, [r0], #4add  r1, r1, #1subs r2, r2, #1bne  set_loop@開始復(fù)制數(shù)據(jù)memcpy:mov  r0, #0x00008e00mov  r1, #0x00008f00mov  r2, #16cpy_loop:ldr  r3, [r0], #4str  r3, [r1], #4subs r2, r2, #1bne  cpy_loopmemcpy_ok:b    .@在數(shù)據(jù)段分配1K的空間.data                       .space 1024                .end/*-----------------------代碼演示結(jié)束------------------------*/【注意】如果要仿真調(diào)試程序    1).data         .space 1024     2)指定數(shù)據(jù)段的地址        arm-...-as memcpy.s -o memcpy.o        arm-...-ld -T.data=0x8e00 memcpy.o -o memcpy    3)仿真調(diào)試        qemu-arm -g 1234 memcpy        另開窗口        arm-...-gdb memcpy        (gdb) target remote localhostip:1234        (gdb) b 10        (gdb) c        (gdb) x/16uw 0x8e00        (gdb) b 30    4)查看內(nèi)存的方式        x/nfu address        n,查看內(nèi)存單元個(gè)數(shù)        f,format顯示內(nèi)存單元的格式,x-16進(jìn)制,d-10進(jìn)制        u,unit單元大小,b-字節(jié),h-半字,w-字3.2 多寄存器加載存儲(chǔ)指令    【加載】    'LDM{cond} <address_mode> <Rb>{!}, <Reglist>{^}        !,更新地址        reglist,r0,r1,r2,r3,r4,r5(r0-r5)        address_mode,            ia:inc after // i增大,r0/r1/r5/r6地址分別為0x...0/4/8/C            ib:inc before  // i增大,r0/r1/r5/r6地址分別為0x...4/8/C/0            da:dec after // d減小,r6/r5/r1/r0地址分別為0x...0/C/8/4            db:dec before // d減小,r6/r5/r1/r0地址分別為0x...C/8/4/0        Rb,基址寄存器        ^,兩種作用,特權(quán)模式下使用用戶模式下的寄存器。        // 編號(hào)小的基地址存在低地址上。            mov r10, #0x40000000            ldmxx r10, {r0, r1, r5, r6}  @// xx 為地址模式    【存儲(chǔ)】    'STM{cond} <address_mode> <Rb>{!}, <Reglist>{^}    (同上)練習(xí)二:    使用多寄存器加載存儲(chǔ)指令,實(shí)現(xiàn)memcpy,把0x8e00開始的16個(gè)字初始化。
        mov r0, #0x8e00        mov r1, #0x8f00        mov r2, #4        loop:            ldmia r0!, {r3, r4, r5, r6}            stmia r1!, {r3, r4, r5, r6}            sub r2, r2, #1            cmp r2, #0            bne loop        memcpy_ok:            b .3.3 棧操作指令    【加載】    'LDMxx  sp!, {reglist r5-r9}    【存儲(chǔ)】    'STMxx  sp!, {reglist r5-r9}    xx,取值:        FD==ia,full descend<下降>        FA==ib,full ascend<上升>        ED==da,empty descend        EA==db,empty ascend    push {fp}  <==> stmfd sp!, {r11}   // fp是r11的別名    pop {fp, pc}  <==>  ldm sp!, {fp, pc}    棧 - C語(yǔ)言中的作用:        1)存儲(chǔ)局部變量        2)緩存LR4、狀態(tài)寄存器訪問指令    'MRS(mov reg cpsr)        msr r0, cpsr    @//r0=cpsr    'MSR(mov cpsr reg)        msr cpsr_c, r0      @//cpsr[ 7 : 0 ]=r0[ 7 : 0 ]        msr cpsr_fsxc, r0  @//cpsr=r05、協(xié)處理器指令    在ARM中最多可以有16個(gè)協(xié)處理器,命名為p0 p1 p2...p15    // p15協(xié)處理器比較有名,其中也有寄存器c0 c1 c2    // p15實(shí)現(xiàn)大小端的設(shè)置;    // DDI0500D_cortex_a53_r0p2_trm.pdf  P113. 搜索big-endian [25]     'MCR(mov cooperation reg)    'MRC(mov reg cooperation)6、軟中斷指令    'SWI/SVC  n(n為立即數(shù))    該指令會(huì)導(dǎo)致軟中斷異常產(chǎn)生,該異常的產(chǎn)生硬件會(huì)做4件事,ARM核會(huì)切換為SVC模式。7、乘法指令    'MUL

8、交換指令    'SWP

----------------------------------------------------------------------------------------------------

一、ARM指令格式【ARM采用的是32位架構(gòu)】    Byte:字節(jié),8bits    HalfWord:半字,16bits    Word:字,32bits    // 大部分ARM core提供:ARM-32bit指令集,Thumb-16bit指令集。【ARM指令的特點(diǎn)】    1)沒每條指令的多功能;    2)指令都帶有條件;    3)靈活的第2操作數(shù)。【ARM指令的基本格式】        "<opcode>{<cond>} {s} <Rd> , <Rn>{, <operand2>}        cond:條件碼。        如果不指定cond,則指令無條件執(zhí)行。        <>:必須項(xiàng)。        { }:可選項(xiàng)。        opcode:指令助記符。        cond:執(zhí)行條件。        S:是否影響CPSR狀態(tài)寄存器的值。        Rd:目標(biāo)寄存器。        Rn:第1個(gè)操作數(shù)的寄存器。        // 例如: SUBNES R2, R1, #0x20    @減法運(yùn)算,條件NE,結(jié)果影響CPSR        operand2:第2操作數(shù),能夠提高代碼效率。        有如下形式:                #immed_8r       常數(shù)表達(dá)式(立即數(shù))                Rm                   寄存器的數(shù)值                Rm,shift            寄存器移位后的數(shù)值        /* 常數(shù)表達(dá)式 - 立即數(shù):合法性 */        一個(gè)8位的常數(shù)通過循環(huán)右移偶數(shù)位得到,即為合法常量。        // 例如:合法常數(shù):0xFF, 0x104, 0xFF0, 0xFF000, 0xFF000000, 0xF000000F        // 例如:非法常數(shù):0x101, 0x102, 0xFF1, 0xFF04, 0xFF003, 0xFFFFFFFF        Rm:寄存器的數(shù)值        Rm,shift:寄存器移位后的值            LSL #n:邏輯左移n位            LSR #n:邏輯右移n位            ASL #n:算術(shù)左移n位            ASR #n:算術(shù)右移n位            ROR #n:循環(huán)右移n位            RRX:帶擴(kuò)展的循環(huán)右移1位            // n位為2的n次方。二、ARM數(shù)據(jù)操作指令【數(shù)據(jù)處理指令】    1)數(shù)據(jù)傳送指令    2)算術(shù)運(yùn)算指令    3)邏輯運(yùn)算指令    4)比較指令    5)測(cè)試指令    6)乘法指令《opcode操作碼功能表》AND/EOR/SUB/RSB/ADD/ADC/SBC/RSC/TST/TEQ/CMP/CMN/ORR/MOV/BIC/MVN【數(shù)據(jù)傳送指令】 mov/mvn    ' mov{cond}{s}  Rd, operand2    將8位立即數(shù)或寄存器傳送到目標(biāo)寄存器Rd中。    // 用于移位運(yùn)算等操作。    ' mvn{cond}{s}  Rd, operand2    將8位立即數(shù)或寄存器按位取反后傳送到目標(biāo)寄存器Rd中。    // 取反功能,可使寄存器裝載范圍更廣的立即數(shù)?!舅阈g(shù)運(yùn)算指令】add/sub/rsb/adc/sbc/rsc    add:加法    sub:減法    rsb:逆向減法    adc:帶進(jìn)位加法    sbc:帶進(jìn)位減法    rsc:帶進(jìn)位逆向減法    ' add{cond}{s}  Rd, Rn, operand2    將operand2的值與Rn的值相加,結(jié)果保存到Rd寄存器。    // 其他算術(shù)運(yùn)算指令等同于add?!具壿嬤\(yùn)算指令】and/orr/eor/bic    and:邏輯與    orr:邏輯或    eor:邏輯異或    bic:位清除(按位清0,其他位不變)    ' and{cond}{s}  Rd, Rn, operand2    將operand2的值與寄存器Rn的值按位作邏輯"與&"操作,結(jié)果保存到Rd中。    // 其他邏輯運(yùn)算指令等同于and。---> 嵌入式控制寄存器的移位操作常用?!颈容^指令】cmp/cmn/tst/teq - 用的比較多!    cmp:比較(本質(zhì):相減,影響cpsr標(biāo)志位)    cmn:負(fù)數(shù)比較(本質(zhì):相加,影響cpsr標(biāo)志位)    tst:位測(cè)試(本質(zhì):邏輯與,影響cpsr標(biāo)志位)    teq:相等測(cè)試(本質(zhì):邏輯異或,影響cpsr標(biāo)志位)    ' cmp{cond}  Rn, operand2    將寄存器Rn的值減去operand2的值,根據(jù)操作結(jié)果更新CPSR中的響應(yīng)條件標(biāo)志位,以便后面的指令根據(jù)相應(yīng)的條件標(biāo)志來判斷是否執(zhí)行。    // 【注意】比較指令的本質(zhì)是做算術(shù)運(yùn)算,但唯一區(qū)別是并不保存運(yùn)算結(jié)果。    // 【錯(cuò)例】cmp  r2, r15, asr  r0   @r15不允許與被控制移位的寄存器一起出現(xiàn),在有移位操作的情況下,不能將r15用于任何操作數(shù)?!境朔ㄖ噶睢縨ul/mla/umull/umlal/smull/smlal    mul:32bit乘法    mla:32bit乘加    ' mul{cond}{s}  Rd, Rm, Rs    將Rm和Rs中的值相乘,結(jié)果的低32位保存到Rd中。    ' mla{cond}{s}  Rd, Rm, Rs, Rn    將Rm和Rs中的值相乘,再將結(jié)果加上第3個(gè)操作數(shù)Rn,結(jié)果的低32位保存到Rd中。    // 【注意】r15不能用作rd, rm, rs, rn,且rd不能與rm相同。    umull/umlal/smull/smlal  均為64位指令。    umull:64bit無符號(hào)乘法    umlal:64bit無符號(hào)乘加    smull:64bit有符號(hào)乘法    smlal:64bit有符號(hào)乘加【分支指令】b/bl/bx    b:分支指令branch    bl:帶鏈接的分支指令branch with link    bx:帶狀態(tài)切換的分支指令branch and exchange(bx{cond}  Rm)    ' b{cond}  label    跳轉(zhuǎn)范圍限制±32M字節(jié)地址內(nèi)(ARM為字對(duì)齊,最低2位地址固定為0)    // 【注意】bl指令需要與 mov pc, lr 一起使用,實(shí)現(xiàn)返回指定地址?!拒浿袛嘀噶睢縮wi    swi:軟中斷    ' swi{cond}  immed_24    實(shí)現(xiàn)從用戶模式變換到管理模式。三、ARM指令的尋址方式    ARM處理器具有 7 種基本的尋址方式:    1)立即尋址;        // 立即尋址就是立即數(shù)尋址,操作數(shù)直接通過指令給出。    2)寄存器尋址;        // 指令中的地址碼是寄存器編號(hào),執(zhí)行時(shí)直接取寄存器的值來操作。    3)寄存器間接尋址;        // 通過load/store完成對(duì)數(shù)據(jù)的傳送操作。利用一個(gè)寄存器的值作為存儲(chǔ)器地址,在指定的寄存器中存放有效地址,而操作數(shù)則放在存儲(chǔ)單元中。    4)基址尋址;        // 將基址寄存器的內(nèi)容與指令中給出的偏移量相加,形成操作數(shù)的有效地址。    5)相對(duì)尋址;        // 由程序計(jì)數(shù)器PC提供基準(zhǔn)地址,指令中的地址碼字段作為偏移量,兩者相加后得到的地址為操作數(shù)的有效地址。    6)堆棧尋址;        // 后進(jìn)先出。使用一個(gè)專門的寄存器(堆棧指針)指向一塊存儲(chǔ)區(qū)域(堆棧),指針?biāo)赶虻拇鎯?chǔ)單元即是堆棧的棧頂。向上-遞增堆棧,向下-遞減堆棧。    7)塊拷貝尋址;        // 將寄存器內(nèi)容復(fù)制到寄存器的地址所指示的存儲(chǔ)器中,需要注意的是在存儲(chǔ)第一個(gè)值之后存儲(chǔ)器地址是增加還是減少。        ia - 傳送后,地址+4        ib - 傳送錢,地址=4        da - 傳送后,地址-4        db - 傳送后,地址-4四、存儲(chǔ)器訪問指令    ARM處理器是load/store型的,即它對(duì)數(shù)據(jù)的操作是通過將數(shù)據(jù)從存儲(chǔ)器加載到片內(nèi)寄存器中進(jìn)行處理,處理完成后的結(jié)果經(jīng)過寄存器存回到存儲(chǔ)器中,以加快對(duì)片外存儲(chǔ)器進(jìn)行數(shù)據(jù)處理的執(zhí)行速度?!締渭拇嫫骷虞d】ldr    ldr:加載字?jǐn)?shù)據(jù)    ldrb:加載無符號(hào)字節(jié)數(shù)據(jù)    ldrt:以用戶模式加載字?jǐn)?shù)據(jù)    ldrbt:以用戶模式加載無符號(hào)字節(jié)數(shù)據(jù)    ldrh:加載無符號(hào)半字?jǐn)?shù)據(jù)    ldrsb:加載有符號(hào)字節(jié)數(shù)據(jù)    ldrsh:加載有符號(hào)半字?jǐn)?shù)據(jù)【單寄存器存儲(chǔ)】str    str:存儲(chǔ)字?jǐn)?shù)據(jù)    strb:存儲(chǔ)字節(jié)數(shù)據(jù)    strt:以用戶模式存儲(chǔ)字?jǐn)?shù)據(jù)    strbt:以用戶模式存儲(chǔ)字節(jié)數(shù)據(jù)    strh:存儲(chǔ)半字?jǐn)?shù)據(jù)【字和無符號(hào)字節(jié)的加載/存儲(chǔ)指令】    ' ldr{cond}{t}  Rd, <地址>    將制定地址上的字?jǐn)?shù)據(jù)讀入Rd。    ' str{cond}{t}  Rd, <地址>    將Rd中的字?jǐn)?shù)據(jù)存入制定地址。    ' ldr{cond}b{t}  Rd, <地址>    將制定地址上的字節(jié)數(shù)據(jù)讀入Rd。    ' str{cond}b{t}  Rd, <地址>    將Rd中的字節(jié)數(shù)據(jù)存入制定地址。    // t 代表處理器是在特權(quán)模式下,存儲(chǔ)系統(tǒng)也將訪問看成是在用戶模式下進(jìn)行的。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

国产一区二区自拍| a级影片在线观看| 久久av综合| 国产精品无码无卡无需播放器| av美女在线观看| www.麻豆av.com| 亚洲午夜久久久影院伊人| 你懂得在线网址| 中文字幕成人一区| 欧美人成在线视频| 国产精品亚洲一区二区在线观看| 中文字幕日韩精品一区| 国产1区2区3区精品美女| 在线日韩精品视频| 欧美在线日韩在线| 久久综合国产精品| 青青精品视频播放| ts人妖交友网站| 日韩精品丝袜美腿| 国产成人精品在线播放| 婷婷综合伊人| 国产精品综合二区| 欧美xxxx在线观看| youjizz亚洲女人| 久久国产精品亚洲人一区二区三区| 亚洲欧洲激情在线乱码蜜桃| 免费黄色日本网站| 丰满诱人av在线播放| 91xxx在线观看| 亚洲片av在线| 免费观看四虎精品成人| 日韩精品中文字幕第1页| 日日日日人人人夜夜夜2017| 亚洲韩国一区二区三区| 亚洲国产精品久久艾草纯爱| 日本一区二区三区在线免费观看| 亚洲人成伊人成综合网久久久| 91精选在线观看| 97se亚洲国产综合自在线| 久久久久久久久久久电影| 怡红院男人天堂| 97久久精品国产| 国产九九热视频| 亚洲国产成人无码av在线| 手机看片国产日韩| 久久亚洲精品一区二区| 亚洲成人看片| 欧美乱妇高清无乱码| 中文字幕在线观看的网站| 女人被狂躁到高潮的免费| 在线国产网址| 天天色综合久久| 中文字幕色呦呦| 可以看的av网址| 亚洲欧美在线一区二区| 日本一区免费观看| 黄页网站在线观看视频| 制服丝袜综合日韩欧美| 欧美tickling网站挠脚心| 精品国产免费久久| 欧美国产视频一区二区| 国产精品对白一区二区三区| 久久九九国产精品怡红院| 伊人无码高清| 中文字幕av一区二区| 国产一区二区三区高清在线观看| 亚洲人av在线影院| 日日摸日日搞日日| 色视频在线观看福利| 91禁在线看| 欧美超级免费视 在线| 来个黄色网址| 日韩一区二区电影| 日韩久久久久久久久久久久| 亚洲欧美日韩综合| 91综合网人人| 一二三四在线观看视频| 羞羞网站在线看| 亚洲美女久久久| 男人靠女人免费视频网站| 久久一区国产| 99久久精品无免国产免费| 亚洲国产毛片完整版| 欧美一区日本一区韩国一区| 欧美精品久久久久| 欧美日韩高清在线一区| 婷婷丁香一区二区三区| 色久综合一二码| 精品在线免费视频| 久久蜜臀中文字幕| 天堂在线观看视频观看www| 欧美性一二三区| 黄在线观看网站| 日韩欧美精品一区二区三区经典| 色尼玛亚洲综合影院| 亚洲精品一区二区三区四区高清| 精品无码一区二区三区电影桃花| 欧美三级成人观看| 久久久国产免费| 亚洲激情第一页| 日韩精品在线免费观看视频| 亚洲视频在线视频| 日本女优爱爱视频| 亚洲女人天堂色在线7777| 大陆精大陆国产国语精品| 精品人妻一区二区三区浪潮在线| 国产主播在线播放| 最新中文字幕亚洲| 黄色小视频在线免费观看| 99re视频在线| 日本道在线观看一区二区| 中文字幕 日韩有码| 97天天综合网| 精品国模一区二区三区欧美| 国产5g成人5g天天爽| 欧美性xxxxx极品娇小| 精品视频在线播放色网色视频| 国产亚洲一区二区在线观看| 国产福利第一视频在线播放| 夜夜操免费视频| 欧美日韩视频免费观看| 老鸭窝亚洲一区二区三区| 免费观看日韩av| 麻豆精品国产传媒mv男同| 国产亚洲精品女人久久久久久| 日本新janpanese乱熟| 人人精品久久| a级毛片免费高清视频| 91啦中文在线观看| av岛国在线| 最近中文字幕免费观看| 99精品99久久久久久宅男| 日本黄色三级网站| 噜噜噜久久亚洲精品国产品小说| 伊人精品综合| 国产suv精品一区二区69| 好紧好硬好湿我太爽了| 亚洲伊人久久大香线蕉av| 国产成人精品一区二区| 超碰人人在线| 在线观看欧美亚洲| 91偷拍一区二区三区精品| 一本色道久久亚洲综合精品蜜桃| 亚洲成人精品电影在线观看| 日本久久久久久久久久| 一区二区不卡| 国产人妻人伦精品| 亚洲欧洲在线观看| 又大又长粗又爽又黄少妇视频| 亚洲成人av免费观看| 欧美最猛黑人xxxx黑人猛叫黄| av激情在线| 亚洲精品一区二区毛豆| 中文在线网在线中文| 怡红院男人的天堂| 欧美一区二区三区免费| 国产视频网站一区二区三区| 91免费福利视频| 日韩精品一区二区三区老鸭窝| 欧美日韩不卡一区二区| 久久综合久久鬼色| 18av网站| 欧美大交乱xxxxbbbb| 在线一级观看| 久久夜色撩人精品| 天堂视频免费在线观看| 999视频精品| 欧美一级久久| 欧美精品videosex牲欧美| 国产精品一二三视频| 年下总裁被打光屁股sp| 久久精品国产综合| 久久观看最新视频| 国产精品久久久久久久久毛片| 成人激情视屏| 亚洲最新色图| 日本视频免费在线| 欧美日韩午夜| 狠狠色综合色区| 91久久国产综合久久91| 亚洲国产一区二区三区青草影视| 91tv亚洲精品香蕉国产一区| 日韩视频在线免费| free性护士videos欧美| 国产精品久久综合青草亚洲AV| 国产区卡一卡二卡三乱码免费| 国产成人精品国内自产拍免费看| 欧美日韩中文字幕日韩欧美| 三上悠亚在线观看| 免费看一区二区三区| 欧美色综合网站| 国产在线精品一区二区夜色| 91.com视频| 精品欧美国产| 极品销魂美女一区二区三区| 亚州国产精品视频| 四虎在线观看| 丁香一区二区| 中文精品在线观看| 韩国精品一区二区三区六区色诱| 国产三区四区在线观看| 亚洲最大成人在线| 国产一区美女| 美女毛片一区二区三区四区最新中文字幕亚洲| 国产精品久久久久久无人区| 天堂久久久久va久久久久| 8x8x视频在线| 国产一级黄色录像| 亚洲AV无码成人精品区明星换面| xfplay5566色资源网站| 日韩在线观看视频网站| 国产狂喷白浆在线观看视频| 波多野结衣在线一区二区| 欧美日韩精品区别| 欧美激情第1页| 久久精品网址| 老熟妇高潮一区二区三区| 国产精品视频最多的网站| 亚洲色图欧美自拍| 色999韩欧美国产综合俺来也| 北岛玲日韩精品一区二区三区| 亚洲成人网av| 日韩你懂的在线播放| 久久精品国产2020观看福利| 亚洲综合婷婷| 视频在线在亚洲| 精品magnet| 国产在线一区不卡| 折磨小男生性器羞耻的故事| 久久精品成人一区二区三区蜜臀| 免费a级毛片永久免费| 亚洲男女av一区二区| 亚洲午夜黄色| 惠美惠精品网| 国产亚洲激情视频在线| 日韩高清中文字幕一区二区| 国产精品尤物福利片在线观看| 先锋资源中文字幕| 午夜av一区二区三区| 91福利入口| wwwcom羞羞网站| 欧美专区在线| 国产精品免费久久久久| 国外成人性视频| 91精品国产一区二区三区动漫| 狠狠躁少妇一区二区三区| www.98色噜噜噜| 中文字幕视频免费在线观看| 狠狠色成人综合网图片区| 丝袜+亚洲+另类+欧美+变态| 自拍视频在线免费观看| 97se亚洲国产一区二区三区| 欧美日韩大片一区二区三区| 99久久99久久精品国产片桃花| 视频一区欧美精品| 亚洲一区二区三区777| 丝袜国产免费观看| 久久精品视频网站| 欧美黑人巨大精品一区二区| 娇妻被老王脔到高潮失禁视频| 亚洲国产精品一区在线观看不卡| 国产中文字幕精品| 国产黄色片大全| 亚洲国产精品99久久久久久久久| 亚洲电影在线一区二区三区| 国产调教视频一区| 日韩精品极品在线观看播放免费视频| 99久久综合精品| 国产精品亚洲天堂| 免费看黄色网| 国产在线一区二区三区| 影音先锋男人的网站| 91佛爷在线| 国产香蕉在线视频| 欧美1234区| 欧美孕妇与黑人孕交| 黄色永久免费网站| 久久白虎精品| 午夜视频一区二区三区| 亚洲精品高清无码视频| 中文字幕在线中文字幕日亚韩一区| 亚洲视频一二三| а天堂中文最新一区二区三区| 久久成人综合| 国产资源在线观看入口av| 国产精品国产三级国产三级人妇| 国产精品1luya在线播放| 欧美aaaaa级| 亚洲性生活视频| 亚洲国产成人精品综合99| 一区二区三区四区免费视频| 欧美一级做a| 久久狠狠亚洲综合| 免费一级特黄毛片| 夜夜躁狠狠躁日日躁av| 免费在线观看的黄色网址| 天天精品视频| 日本少妇毛茸茸| 日本免费一区二区三区四区| 久久久国产精品视频| 99视频精品免费视频| 少妇户外露出[11p]| 中文字幕手机在线视频| 成人免费观看视频大全| 中文在线一区二区三区| 欧美一区二区在线免费观看| 欧美一区二区视频在线播放| 国产在线一二三| 久久五月精品| 欧美一级黄色片视频| av电影免费看| 裸模一区二区三区免费| 成人精品电影在线| 欧美熟妇一区二区| 欧美色图一区二区| 国产在线欧美日韩| 亚洲人性生活视频| 国产精品美女在线观看直播| 色天天综合久久久久综合片| 少妇毛片一区二区三区| 97国产精东麻豆人妻电影| 欧美精品久久久久久久多人混战| 最近免费中文字幕大全免费第三页| 在线成人一区二区| 91九色鹿精品国产综合久久香蕉| 国产精品爽爽久久久久久| caoporn国产一区二区| 网曝门事件国产精品二区|