婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 嵌入式系統(tǒng) >> ARM >> 正文

ARM匯編偽指令詳解

作者:佚名    文章來源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2008/11/28

ARM匯編程序分析過程中,比較難理解的是他的偽操作、宏指令和偽指令。在讀vivi時(shí)遇到很多不懂的,所以在此對(duì)引導(dǎo)程序中出現(xiàn)偽操作、宏指令和偽指令進(jìn)行總結(jié),

 

*****************************************************
    一、GET option.s

 

// GET和INCLUDE功能相同
功能:引進(jìn)一個(gè)被編譯過的文件。
格式:GET    filename
其中:fiename    匯編時(shí)引入的文件名,可以有路徑名。
    GET符號(hào)在匯編時(shí)對(duì)宏定義,EQU符號(hào)以及存儲(chǔ)映射時(shí)是很有用的,在引入文件匯編完以后,匯編將從GET符號(hào)后開始。在被引入的文件中可能有GET符號(hào)再引入其他的文件。GET符號(hào)不能用來引入目標(biāo)文件。

 

*****************************************************
    二、INTPND EQU 0x01e00004

 

//EQU可以用“*”代替,在閱讀源程序時(shí)注意。
功能:對(duì)一個(gè)數(shù)字常量賦予一個(gè)符號(hào)名。
格式:name    EQU   expression
其中:name   符號(hào)名。Expression    寄存器相關(guān)或者程序相關(guān)的固定值。
    使用EQU定義常量,與C語言中用#define定義一個(gè)常量相同。
例:num   EQU   2    ; 數(shù)字2賦予符號(hào)num

 

*****************************************************
    三、GBLL    THUMBCODE
        [ {CONFIG} = 16
            THUMBCODE SETL {TRUE}
            CODE32
        | 
            THUMBCODE SETL {FALSE}
        ]

        [ THUMBCODE
            CODE32   ;for start-up code for Thumb mode
        ]

 

//其中[=IF ,|=ELSE ,]= ENDIF, CODE32 表明一下操作都在ARM狀態(tài)。這些都是偽操作這段理解為設(shè)定THUMCODE的值,然后確定,用戶的程序是在ARM狀態(tài)還是THUM狀態(tài)。

*****************************************************
    四、MACRO


        $HandlerLabel HANDLER $HandleLabel
        $HandlerLabel
        sub sp,sp,#4 ;decrement sp(to store jump address)
        stmfd sp!,{r0} ;PUSH the work register to stack
        ldr r0,=$HandleLabel;load the address of HandleXXX to r0
        ldr r0,[r0] ;load the contents(service routine start address) of HandleXXX
        str r0,[sp,#4] ;store the contents(ISR) of HandleXXX to stack
        ldmfd sp!,{r0,pc} ;POP the work register and pc(jump to ISR)
        MEND

 

//MACRO……MEND
功能:標(biāo)志一下宏的定義。
格式:MACRO
     Macro_prototype
     MEND
宏表達(dá)式的格式如下:
{$label}   macroname    {$ parameter{,parameter2}…}
其中:
$ label   參數(shù),在宏使用時(shí),被給定的符號(hào)替代。
Macroname   宏的名稱,并不一定以一條指令或者符號(hào)名開始。
$parameter    在宏使用時(shí),被替代的參數(shù),格式為:$parameter=“default value”
   在宏體中,參數(shù)如:$parameter和變量一樣使用,在被宏引用時(shí),被賦于新值,參數(shù)必須用“$”符號(hào)加于區(qū)別。$label在宏定義內(nèi)部符號(hào) 時(shí)很有用,可以看作宏的參數(shù)。使用“|”符號(hào)作為使用一個(gè)參數(shù)缺省值的變量,如果使用的是一個(gè)空格符串,將省去該變量。在使用內(nèi)部標(biāo)志的宏定義中,將內(nèi)部 標(biāo)志定義為帶后綴的標(biāo)志,將會(huì)很有用。如果在擴(kuò)展中空間不夠,可以作為參數(shù)和后繼文字之間或者參數(shù)之間使用圓點(diǎn)隔開,但在文本和后繼參數(shù)之間不能使用圓點(diǎn)。宏可以定義局部變量的范圍。宏還可以嵌套使用。
例:
MACRO
$label    xmac    $p1,$p2
          LCLS   err
$labell,loopl
          BGE    $pl
$labell,loop2
          BL     $p1
          BEG      $p1
          BEG      $labell,loop2
MEND

 

*****************************************************
    五、$和$$

 

//$臨時(shí)變量替換,若程序中需要用字符$則用$$來表示,通常情況下,包含在兩個(gè)||之間的$并不表示進(jìn)行變量替換,但是如果|線是在雙引號(hào)內(nèi),則將進(jìn)行變量替換。用“.”來分割出變量名的用法,
 GBLS STR1
 GBLS STR2
STR1 SETS "AAA"
STR2 SETS "BBB$$STR1.CCC"  //匯編后STR2的值為bbAAACCC

 

*****************************************************
    六、 IMPORT  Main    ; The main entry of mon program

 

//該偽操作告訴編譯器當(dāng)前的符號(hào)不是在本文件中定義的,在本源文件中可能引用該符號(hào),而不論該源文件是否使用該符號(hào),該符號(hào)都將被加入到本源文件中。
格式:
IMPORT symbol {[WEAK]}
    symbol 引用的符號(hào)的名稱,他是區(qū)分大小寫的,[WEAK]指定這個(gè)選項(xiàng)后,如果symbol所在的源文件中沒有被定義,編譯器也不會(huì)報(bào)錯(cuò)。他和EXTERN作用相同,不同之處在于,如果本源文件沒有實(shí)際引用該符號(hào),該符號(hào)將不會(huì)被加入到本源文件的符號(hào)表中。


*****************************************************
    七、AREA    Init,CODE,READONLY
       ENTRY

 

//功能:指示匯編器匯編一段新的代碼或新的數(shù)據(jù)區(qū)。
格式:

name  給出的特定段名。以數(shù)字開頭,必須加豎線,否則,將報(bào)錯(cuò),例如:|1_Data-Area|。某些名字已保留,如:|C$$code|已經(jīng)被C編譯器用作代碼,或者用作與C庫相連的代碼段。
Attr    段名屬性,下列屬性是有效的:
ALIGN=expression
缺省狀態(tài)下,AOF段將按4個(gè)字節(jié)對(duì)準(zhǔn),expression可以是2~31之間的整數(shù),該段將按2(上標(biāo)為expression)字節(jié)對(duì)準(zhǔn)。例如,espression等于

10,該段將按1KB對(duì)準(zhǔn)。

 

CODE        特定機(jī)器指令,缺省為READONLY。
COMDEF      通用段定義。該AOF段可能包括代碼和數(shù)據(jù),但必須與其他段名相區(qū)別。
COMMON      通用數(shù)據(jù)段,無須再注釋定義任何代碼和數(shù)據(jù),通常由鏈接器初始化為零。
DATA        包含數(shù)據(jù),但是不包含指令,缺省為READWRITE
INTERWORK   表明代碼段可以適用ARM/Thumb interworking功能。
NOINIT      表明數(shù)據(jù)段可以初始化為零,只包含指示符。
PIC         表明定位獨(dú)立段,可以不修改情況下,在任意地址執(zhí)行。
READONLY    表明該段可讀可寫。

 

 匯編時(shí),必須至少有一個(gè)AREA指示符。使用AREA符號(hào)可以將源程序區(qū)分,但是必須不重名。通常需要獨(dú)立的AOF段做為代碼或者數(shù)據(jù)段,較大程序 可以分為多個(gè)代碼段。AOF段可以定義局部標(biāo)簽的范圍,可以使用ROUT符號(hào)。如果沒有任何的AREA指示符定義,匯編器將會(huì)產(chǎn)生名為|$$$$$$$| 的AOF段和一條診斷信息,將限制由于缺少指示符而產(chǎn)生的錯(cuò)誤信息,但是并不一定會(huì)成功匯編。

 

*****************************************************
    八、LTORG

 

//LTORG是在此指令出現(xiàn)的地方放一個(gè)文本池(literal pool). 在ARM匯編中常用到
    ldr   r0, =instruction     將地址instruction載入r0
    此時(shí)編譯器將ldr盡可能的轉(zhuǎn)變成mov或mvn指令。 如果轉(zhuǎn)變不成, 將產(chǎn)生一個(gè)ldr指令,通過pc相對(duì)地址從一塊保存常數(shù)的內(nèi)存區(qū)讀出instruction的值。此內(nèi)存區(qū)既是文本池。一般的, 文本池放在END指令之后的地方。但是, 如果偏移地址大于4k空間, ldr指令會(huì)出錯(cuò)(因?yàn)閘dr的相對(duì)偏移地址為12-bit的值). 此時(shí)使用LTORG放到會(huì)出錯(cuò)的ldr指令附近,以解決此問題。編譯器會(huì)收集沒有分配的ldr的值放到此文本池中

。所以必須在LDR指令前后4KB的范圍內(nèi)用LTORG顯式地在代碼段中添加一個(gè)文字池。

 

*****************************************************
    九、LDR r0,=WTCON ;watch dog disable
      LDR r1,=0x0

 

功能:將一個(gè)32位常量或地址讀取至寄存器。
格式:
LDR{condition} register,=[expression|Label-expression]
其中:
condition             可選的條件代碼。
register              讀取的寄存器。
expression            數(shù)字常量:
    如果該數(shù)字常量在MOV或MVN指令的范圍中,匯編器會(huì)產(chǎn)生合適的指令;
    如果該數(shù)字量不在MOV或MVN指令的范圍中,匯編器把該常量于程序后,用程序相關(guān)的LDR偽指令讀取,PC與該常量的偏移量不得超過4KB。
Label-expression      程序相關(guān)的或外部的表達(dá)式。匯編器將其存放在程序后的常量庫(稱為文字池(literal pool))中,用程序相關(guān)的LDR偽指令讀取,PC與與該常量的偏移量不得超過4KB。

LDR偽指令的使用有兩個(gè)目的:
     對(duì)于不能被MOV和MVN指令所讀取的立即數(shù),將其變成常量,進(jìn)行讀取。
     將一個(gè)程序相關(guān)的或外部的表達(dá)式讀取進(jìn)寄存器中。
例:
LDR  R1, =0xfff
LDR  R2, =place

 

*****************************************************
    十、DCD 0x11110090

 ;Bank0=OM[1:0], Bank1~Bank7=16bit, bank2=8bit;

 

//DCD或“&”
功能: 分配一個(gè)或多個(gè)字,從4個(gè)字節(jié)邊界開始。
格式:
{label}DCD  expression{,expression}…
其中:
expression    可以是:
一個(gè)數(shù)學(xué)表達(dá)式;
一個(gè)程序相關(guān)的表達(dá)式。

 如果在Thumb代碼中,使用DCD符號(hào)定義帶標(biāo)志的數(shù)據(jù)時(shí)則必須使用DATA符號(hào)。
    按4個(gè)字節(jié)對(duì)準(zhǔn)時(shí),DCD符號(hào)會(huì)在第一個(gè)字節(jié)之前插入3個(gè)字節(jié)的空字符,如果無須對(duì)準(zhǔn)的話,可以使用DCDU符號(hào)。
例:
datal   DCD    1,5,20
data2   DCD    mem06
data3    DCD  glb+4

 

*****************************************************
    十一、ALIGN

 

//功能:從1個(gè)字邊界開始。
格式:
ALIGN  {expression  {,offset-expression} }
其中:
    expression    2(上標(biāo)為0)到2(上標(biāo)為31)之間的任意數(shù)冪,當(dāng)前按2(上標(biāo)為n)字節(jié)對(duì)準(zhǔn),如果該參數(shù)沒有指定,ALIGN將按字對(duì)準(zhǔn)。
    Offset-expression  定義expression指定的對(duì)準(zhǔn)方式的字節(jié)偏移量。

 使用ALIGN符號(hào),保證程序正確對(duì)準(zhǔn)。對(duì)于Thumb地址,使用ALIGN符號(hào)保證其按字對(duì)準(zhǔn),例如:ADR  Thuub偽指令只能讀取字對(duì)準(zhǔn)的地址。
    在代碼段出現(xiàn)數(shù)據(jù)定義符時(shí),使用ALIGE符號(hào)。當(dāng)在代碼段使用數(shù)據(jù)定義符(DCB,DCW,DCWU,DCDU和%),程序計(jì)數(shù)器PC并不一定按字對(duì)準(zhǔn)。

 匯編器會(huì)在下一條指令時(shí)插入3個(gè)字節(jié),保證:
    ARM狀態(tài)下按字對(duì)準(zhǔn);
    Thumb狀態(tài)下按半字對(duì)準(zhǔn)。
    在Thumb狀態(tài)下,可以使用ALIGN2對(duì)Thumb代碼按半字對(duì)準(zhǔn)。
    使用ALIGN狀態(tài)下,還可以充分利用一些ARM處理器的Cache,例如,ARM940T有一個(gè)每行4字的Cache,使用ALIGN16按16字節(jié)對(duì)準(zhǔn),從而最大限度使用Cache。

 

*****************************************************
    十二、^ _ISR_STARTADDRESS

 

//MAP與"^"
    MAP用于定義一個(gè)結(jié)構(gòu)化的內(nèi)存表(StorageMAP)的首地址。此時(shí),內(nèi)存表的位置計(jì)數(shù)器{VAR}(匯編器的內(nèi)置變量)設(shè)置成該地址值。MAP可以用”^”代替。
語法:MAP  expr {,base-register}
    其中,expr為數(shù)字表達(dá)式或者是程序中已經(jīng)定義過的標(biāo)號(hào)。Base-register為一個(gè)寄存器。當(dāng)指令中沒有Base-register時(shí), expr為結(jié)構(gòu)化內(nèi)存表的首地址。此時(shí),內(nèi)存表的位置計(jì)數(shù)器{VAR}設(shè)置成該地址值。當(dāng)指令中包含這一項(xiàng)時(shí),結(jié)構(gòu)化內(nèi)存表的首地址為expr和Base -register寄存器內(nèi)容的和。
使用說明:MAP偽操作和FIELD偽操作配合使用來定義結(jié)構(gòu)化的內(nèi)存表結(jié)構(gòu)。

舉例:MAP偽操作
MAP  fun  ;fun就是內(nèi)存表的首地址
MAP   0x100,R9  ;內(nèi)存表的首地址為 R9+0x100

 

*****************************************************
     十三、HandleReset # 4
        HandleUndef # 4
        HandleSWI # 4

 

//FIELD和"#"
FIELD 用于定義一個(gè)結(jié)構(gòu)化的內(nèi)存表中的數(shù)據(jù)域。FIELD 可用“#”代替。
語法:{label} FIELD expr
其中:{label}為可選的。當(dāng)指令中包含這一項(xiàng)時(shí),label的值為當(dāng)前內(nèi)存表的位置計(jì)數(shù)器{VAR}的值。匯編編譯器處理了這條FIELD偽操作后。

內(nèi)存表計(jì)數(shù)器的值將加上expr.expr表示本數(shù)據(jù)域在內(nèi)存中所占的字節(jié)數(shù)。

使用說明:MAP偽操作和FIELD偽操作配合使用來定義結(jié)構(gòu)化的內(nèi)存表結(jié)構(gòu)。MAP偽操作定義內(nèi)存表的首地址。FIELD偽操作定義內(nèi)存表的數(shù)據(jù)域的字節(jié)長(zhǎng)度,并可以為每一格數(shù)據(jù)域指定一個(gè)標(biāo)號(hào),其他指令可以引用該標(biāo)號(hào)。

MAP偽操作中的Base-registe寄存器值隊(duì)以其后所有FIELD偽操作定義的數(shù)據(jù)域是默認(rèn)使用的,直到遇到新的包含Base-registe項(xiàng)的MAP偽操作需要特別注意的是,MAP偽操作和FIELD偽操作僅僅是定義數(shù)據(jù)結(jié)構(gòu),他們并不實(shí)際分配內(nèi)存單元。由MAP偽操作和FIELD偽操作配合 定義的內(nèi)存表有3種:基于絕對(duì)地址的內(nèi)存表,基于相對(duì)地址的內(nèi)存表和基于PC的內(nèi)存表。

舉例:基于絕對(duì)地址的內(nèi)存表

 用偽操作序列定義一個(gè)內(nèi)存表,其首地址為固定的地址8192(0X2000),該內(nèi)存表中包括5個(gè)數(shù)據(jù)域。  

    Consta長(zhǎng)度為4個(gè)字節(jié);constb長(zhǎng)為4個(gè)字節(jié),x長(zhǎng)為8字節(jié);y長(zhǎng)為8字節(jié);string長(zhǎng)為16字節(jié)。這種內(nèi)存表成為基于絕對(duì)地址的內(nèi)存表。

MAP  8192 ; //內(nèi)存表的首地址8192(0x2000)
Consta FIELD 4 ; //consta 長(zhǎng)為4字節(jié),相對(duì)位置為0
Constb FIELD 4; //constb長(zhǎng)為4字節(jié),相對(duì)位置為4
X   FIELD  8; // X長(zhǎng)為8字節(jié),相對(duì)位置為8
Y    FIELD 8; // y長(zhǎng)為8字節(jié),相對(duì)位置為16
String FIELD 16 ;// String為16字節(jié),相對(duì)位置為24

在指令中,可以這樣引用內(nèi)存表中的數(shù)據(jù)域;

LDR R0,consta; //將consta地址處對(duì)應(yīng)內(nèi)存加載到R0上面的指令僅僅可以訪問LDR指令前后4KB地址范圍的數(shù)據(jù)域。

舉例:相對(duì)絕對(duì)地址的內(nèi)存表

 下面的偽操作序列定義一個(gè)內(nèi)存表,其首地址為0與R9寄存器值得和,該內(nèi)存表中包含5個(gè)數(shù)據(jù)域。這種表稱為相對(duì)地址的內(nèi)存表。

MAP 0,R9;//內(nèi)存表的首地址寄存器R9的值
Consta FIELD 4 ; //consta 長(zhǎng)為4字節(jié),相對(duì)位置為0
Constb FIELD 4; //constb長(zhǎng)為4字節(jié),相對(duì)位置為4
X   FIELD  8; // X長(zhǎng)為8字節(jié),相對(duì)位置為8
Y    FIELD 8; // y長(zhǎng)為8字節(jié),相對(duì)位置為16
String FIELD 16;// String為16字節(jié),相對(duì)位置為24

可以通過下面的指令訪問地址范圍超過4KB的數(shù)據(jù);

ADR  R9, Field ;  //偽指令
LDR  R5,Constb;//相當(dāng)于LDR R5,[R9,#4]

 在這里,內(nèi)存表中的數(shù)據(jù)都是相對(duì)于R9寄存器的內(nèi)容,而不是相對(duì)于一個(gè)固定的地址。通過在LDR中指定不同的基址寄存器的值,定義的內(nèi)存表結(jié)構(gòu)可以在程序中有多個(gè)實(shí)例。可多次使用LDR指令,用以實(shí)現(xiàn)不同的程序?qū)嵗?/P>

舉例:基于PC的內(nèi)存表

Data   SPACE 100 ; //分配100字節(jié)的內(nèi)存單元,并初始化為0
MAP Data;//內(nèi)存表的首地址為Datastruc內(nèi)存單元
Consta FIELD 4 ; //consta 長(zhǎng)為4字節(jié),相對(duì)位置為0
Constb FIELD 4; //constb長(zhǎng)為4字節(jié),相對(duì)位置為4
X   FIELD  8; // X長(zhǎng)為8字節(jié),相對(duì)位置為8
Y    FIELD 8; // y長(zhǎng)為8字節(jié),相對(duì)位置為16
String FIELD 16;// String為16字節(jié),相對(duì)位置為24

可以通過下面的指令訪問范圍不超過4kb的數(shù)據(jù);

LDR R5,constb ;相當(dāng)于 LDR R5,[PC,offset]

Tags:ARM,匯編,偽指令  
責(zé)任編輯:admin
請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評(píng)論
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av
<button id="4i884"></button>
  • <abbr id="4i884"><source id="4i884"></source></abbr>
  • <code id="4i884"><tr id="4i884"></tr></code>
  • <rt id="4i884"></rt>
    <li id="4i884"></li>
  • <rt id="4i884"><tr id="4i884"></tr></rt>
  • 韩国黄色一级大片| 污污动漫在线观看| 不卡中文字幕在线观看| 国产精品久久久久久久乖乖| 亚洲第一天堂久久| 天堂av2020| 伊人网在线综合| 在线观看日本一区二区| 看欧美ab黄色大片视频免费| 看av免费毛片手机播放| 少妇人妻在线视频| 国产主播在线看| 麻豆av免费在线| 成人免费无码av| 丁香婷婷激情网| 视频二区在线播放| 亚欧美一区二区三区| 小泽玛利亚av在线| 欧美日韩精品在线一区二区| 男女高潮又爽又黄又无遮挡| 激情综合网俺也去| 一级做a爱视频| 91亚洲精品国产| 免费在线观看日韩视频| 黄色av免费在线播放| 黄大色黄女片18第一次| 91精产国品一二三产区别沈先生| 国产精品嫩草影视| 18黄暴禁片在线观看| 国产精品97在线| 久久精品国产99久久99久久久| 久久精品国产露脸对白| 97视频在线免费| 亚洲国产精品毛片av不卡在线| 免费看污黄网站| 性做爰过程免费播放| 男女激情无遮挡| 999热精品视频| 男人插女人视频在线观看| 天天操天天摸天天爽| 黄色a级三级三级三级| 国产玉足脚交久久欧美| 成年人三级黄色片| 好吊妞无缓冲视频观看| 亚洲精品久久久久久宅男| 极品粉嫩国产18尤物| 亚洲a级黄色片| 欧美综合在线观看视频| 欧美 国产 精品| 久久撸在线视频| 97国产在线播放| 在线观看视频黄色| 在线观看av网页| 欧美 日韩 国产一区| 在线成人免费av| 天天爽夜夜爽一区二区三区| 给我免费播放片在线观看| 干日本少妇视频| 色婷婷一区二区三区在线观看| 成年人小视频网站| 国产成人无码一二三区视频| 日本免费a视频| 麻豆映画在线观看| 日本一二三四区视频| 在线免费观看av网| 国产成年人视频网站| 欧美在线观看视频网站| 黄色片久久久久| 粗暴91大变态调教| 亚洲激情在线观看视频| 日日碰狠狠丁香久燥| 激情综合网俺也去| 亚洲精品一二三四五区| 校园春色 亚洲色图| 亚洲欧美另类动漫| 污污网站在线观看视频| 成人不卡免费视频| aaa免费在线观看| 国产高清不卡无码视频| 国产视频在线观看网站| 欧美激情 国产精品| 欧美成人黑人猛交| 乌克兰美女av| 制服丝袜中文字幕第一页 | 国产内射老熟女aaaa| 日本中文字幕一级片| 欧洲精品一区二区三区久久| 内射国产内射夫妻免费频道| 成人亚洲视频在线观看| 天天色综合社区| 天天爱天天做天天操| 日本中文字幕在线视频观看| 大肉大捧一进一出好爽视频| 国产又粗又长又大的视频| 在线免费看v片| 和岳每晚弄的高潮嗷嗷叫视频| 88av.com| 成人av在线不卡| 免费在线观看毛片网站| 国产性生活一级片| 男人用嘴添女人下身免费视频| 日日躁夜夜躁aaaabbbb| 18禁裸男晨勃露j毛免费观看| 国产av无码专区亚洲精品| 视频在线观看免费高清| 日韩精品在线观看av| 日本中文字幕高清| 精品久久久久久无码中文野结衣| 99热成人精品热久久66| 奇米777四色影视在线看| 久久综合久久色| 蜜臀av色欲a片无码精品一区| 国产aaaaa毛片| 免费人成在线观看视频播放| 天美星空大象mv在线观看视频| 亚洲乱码日产精品bd在线观看| 日本在线视频www| 免费在线看黄色片| 波多野结衣激情| 欧美又黄又嫩大片a级| 亚洲第一狼人区| 无码人妻丰满熟妇区五十路百度| 日韩激情视频一区二区| 一级黄色录像在线观看| www.超碰com| 免费毛片小视频| 欧美大黑帍在线播放| 欧美 另类 交| 91香蕉国产线在线观看| 久热精品在线观看视频| 91极品视频在线观看| 国产亚洲精品网站| 蜜臀av无码一区二区三区| 欧美在线观看视频免费| 欧美亚洲视频一区| 中文字幕第一页在线视频| 日本www.色| 最新免费av网址| 免费成人深夜夜行网站视频| 思思久久精品视频| 亚洲第一页在线视频| 秋霞在线一区二区| 激情五月六月婷婷| 台湾无码一区二区| 蜜臀精品一区二区| 国模吧无码一区二区三区| 日韩a∨精品日韩在线观看| 搞av.com| 少妇激情一区二区三区| 一级在线免费视频| 亚洲图片 自拍偷拍| 日韩中文在线字幕| www.av片| 污网站在线免费| 国产xxxx振车| 成年人网站大全| 久久久久久久久久毛片| 日本a在线天堂| 亚洲精品高清无码视频| wwwwwxxxx日本| 黑人巨茎大战欧美白妇| 欧美 日韩 激情| 性欧美18一19内谢| 久久久999视频| 最新天堂在线视频| 无码中文字幕色专区| 日韩精品你懂的| 午夜免费福利小电影| 久久午夜夜伦鲁鲁一区二区| 最新视频 - x88av| 欧美日韩亚洲一| 91网站在线观看免费| 日韩福利视频在线| 免费的一级黄色片| 狠狠干狠狠操视频| 免费看又黄又无码的网站| www.久久久久久久久久久| 欧美亚洲国产成人| 乱子伦一区二区| 久热精品在线观看视频| 北条麻妃在线视频观看| 欧美日韩一级在线| 911福利视频| 日韩av播放器| 少妇人妻无码专区视频| 日韩精品在线播放视频| 亚洲色精品三区二区一区| 欧洲精品一区二区三区久久| 大地资源第二页在线观看高清版| 美女网站免费观看视频 | 久久人妻精品白浆国产 | 一区二区三区免费播放| 亚洲中文字幕无码av永久| 搡的我好爽在线观看免费视频| 欧美激情国产精品日韩| 国产男女在线观看| 国产免费黄色av| 久久久久久www| 激情五月六月婷婷| av在线观看地址|