• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種用于分析MCS-51目標(biāo)碼堆棧深度的方法

    2010-12-11 08:00:59張西超郭向英
    關(guān)鍵詞:主程序堆棧子程序

    張西超,郭向英

    (北京控制工程研究所,北京 100190)

    一種用于分析MCS-51目標(biāo)碼堆棧深度的方法

    張西超,郭向英

    (北京控制工程研究所,北京 100190)

    在嵌入式軟件中,針對(duì)目標(biāo)碼的堆棧分析是堆棧檢查的常用手段.提出了一種用于MCS-51系列處理器目標(biāo)碼的堆棧深度分析方法,該方法可分析最壞情況下的堆棧深度,并考慮了不同優(yōu)先級(jí)下中斷服務(wù)程序?qū)Χ褩5挠绊?利用該方法可開發(fā)出分析MCS-51目標(biāo)碼的堆棧分析工具,其分析結(jié)果對(duì)堆棧安全檢查和優(yōu)化具有參考意義.

    MCS-51; 目標(biāo)碼; 堆棧分析; 堆棧深度

    在嵌入式系統(tǒng)中,堆棧溢出往往會(huì)給系統(tǒng)造成致命的危害[1].檢查堆棧深度的方法可分為動(dòng)態(tài)和靜態(tài)兩類.動(dòng)態(tài)方法[2]是運(yùn)行被測(cè)軟件,測(cè)得的最大堆棧深度通常小于軟件的實(shí)際最大堆棧深度[3].靜態(tài)方法是在不運(yùn)行被測(cè)軟件情況下,分析堆棧深度,是一種更為可靠的方法.文獻(xiàn)[3]所述的堆棧分析方法采用了遞歸計(jì)算方法,根據(jù)數(shù)據(jù)流遞歸分析每個(gè)地址的堆棧深度,從而確定目標(biāo)碼的最大堆棧深度,但由于該方法未提取子程序信息,所以不能獲得每個(gè)子程序的最大堆棧深度以及最大堆棧深度形成的路徑,并且當(dāng)目標(biāo)碼包含動(dòng)態(tài)跳轉(zhuǎn)、不平衡循環(huán)等情況時(shí)無法使用該方法.

    本文提出的方法不使用遞歸計(jì)算,在分析目標(biāo)碼最大堆棧深度的同時(shí)分析出各個(gè)子程序最大堆棧深度和最大堆棧深度形成的路徑,同時(shí)提出了目標(biāo)碼包含動(dòng)態(tài)跳轉(zhuǎn)、不平衡循環(huán)等情況時(shí)的應(yīng)對(duì)措施.

    1 堆棧深度分析方法

    該方法的分析思路是根據(jù)MCS-51系統(tǒng)處理器的堆棧結(jié)構(gòu)特點(diǎn),先基于目標(biāo)碼構(gòu)造出子程序的調(diào)用關(guān)系圖,再逐個(gè)分析每個(gè)子程序的最大堆棧深度,最后求出整個(gè)程序的最大堆棧深度.

    1.1MCS-51系列處理器的堆棧特點(diǎn)

    MCS-51的堆棧位置是可編程的,棧指針SP是一個(gè)8位專用寄存器,指示堆棧頂在內(nèi)部RAM塊中的位置.系統(tǒng)復(fù)位后,SP被初始化為07H,使得堆棧事實(shí)上默認(rèn)由08H單元開始.由于MCS-51內(nèi)部RAM的08H~1FH單元分屬于工作寄存器區(qū)1~3,最好把SP值該置為1FH或更大的值[4].

    但是,SP的初始值越大,可用的堆棧深度就越??;反之,SP的初始值越小,可用的堆棧深度就越深.在MCS-51的指令系統(tǒng)中,除了可以直接改變SP值的指令外,如MOV, SP, #1FH,在執(zhí)行PUSH、POP、各種子程序調(diào)用、中斷影響、子程序返回RET和中斷返回RETI等指令時(shí),SP值將自動(dòng)增加或減少.

    1.2子程序調(diào)用關(guān)系圖構(gòu)建方法

    子程序調(diào)用關(guān)系圖的構(gòu)建過程是對(duì)目標(biāo)碼進(jìn)行遍歷,找出所有的子程序并構(gòu)建它們之間的調(diào)用關(guān)系.在MCS-51目標(biāo)碼中尋找子程序的關(guān)鍵點(diǎn)是尋找子程序調(diào)用指令,即ACALL和LCALL指令,指令的目的地址即為子程序入口地址.

    這里采用了深度優(yōu)先的方法遍歷目標(biāo)碼,從程序的入口地址開始分析,遍歷所有分支,記錄每個(gè)遇到的ACALL或LCALL指令,取出其目的地址,該地址即為子程序的入口地址.以圖1所示為子程序分支結(jié)構(gòu)圖為例,按照深度優(yōu)先方法,先分析分支①②③⑤,其次分析分支①②③⑥,最后分析分支①②④.

    圖1 子程序分支結(jié)構(gòu)圖

    分析主程序后,便形成了最上層的調(diào)用關(guān)系圖,然后依次類推,再逐個(gè)分析次層子程序,直至不再有新的子程序產(chǎn)生,具體過程可概述如下:

    1)采用深度優(yōu)先的方法從入口地址開始分析主程序,記錄其調(diào)用的子程序,分析完成后將主程序標(biāo)記為已分析,子程序均標(biāo)記為未分析;

    2)遍歷沒有被分析的子程序,記錄其調(diào)用的子程序,分析完成后將該子程序標(biāo)記為已分析;

    3)重復(fù)步驟2直至所有的子程序均被標(biāo)記為已分析;

    4)根據(jù)記錄的信息,形成調(diào)用關(guān)系圖,最上層是主程序,最下層是扇出為0的子程序.

    根據(jù)上述方法可快速構(gòu)建出子程序調(diào)用關(guān)系圖,為計(jì)算堆棧深度提供了基礎(chǔ).需要注意的是,分析某些目標(biāo)碼時(shí)上述方法會(huì)遇到障礙,下面介紹這些特殊情況及處理方法.

    1.3子程序堆棧深度分析

    在介紹子程序堆棧分析方法之前,先定義幾個(gè)表述子程序堆棧深度的名詞:路徑、路徑平衡度、路徑堆棧深度、子程序平衡度和子程序堆棧深度,含義分別如下:

    1)路徑:從子程序入口開始,沿子程序內(nèi)的某一控制流執(zhí)行,直到出現(xiàn)RET(或RETI)指令,此時(shí)所經(jīng)歷的所有語句便組成了一條路徑.

    2)路徑平衡度:相對(duì)于進(jìn)入路徑第一條語句時(shí)的堆棧深度,沿路徑執(zhí)行到最后一條指令時(shí)產(chǎn)生的堆棧偏移量便是該路徑的平衡度.如果路徑中含有子程序調(diào)用指令,被調(diào)子程序的平衡度計(jì)入本條路徑,如果路徑產(chǎn)生的偏移量為-2(RET和RETI指令對(duì)堆棧的影響均為-2),則認(rèn)為這是一條平衡路徑.以表1中的路徑為例,其路徑平衡度計(jì)算方法是:-2=1+2+(-2)+(-1)+(-2),等號(hào)右邊的數(shù)字分別是PUSH、ACALL、子程序SUBP平衡度、POP和RET對(duì)堆棧的影響.

    3)路徑堆棧深度:從路徑的起點(diǎn)開始,執(zhí)行至終點(diǎn)過程中達(dá)到的最大堆棧深度,即為路徑堆棧深度.如果路徑中包括了函數(shù)調(diào)用指令,函數(shù)的堆棧深度也計(jì)入該路徑堆棧深度.以表1中的路徑為例,路徑堆棧深度計(jì)算方法是:8=1+2+5,等號(hào)右邊的數(shù)字分別是PUSH、ACALL指令對(duì)堆棧的影響及子程序SUBP的最大堆棧深度.

    子程序平衡度:這里將子程序的平衡度定義為其所有路徑中路徑平衡度的最大值,如果該值為-2,那么這是一個(gè)平衡子程序.

    子程序堆棧深度:即子程序所有路徑中路徑堆棧深度的最大值.

    表1 子程序路徑

    分析程序堆棧時(shí),首先根據(jù)子程序調(diào)用關(guān)系圖確定子程序調(diào)用層次,當(dāng)一個(gè)子程序出現(xiàn)在不同的層次時(shí),將其歸類在較低的層次,同時(shí)將其調(diào)用的子程序放在更低的層次.如子程序A調(diào)用了子程序B和C,子程序B調(diào)用了C,那么C應(yīng)該處于B的下層.

    在子程序?qū)哟未_定后,先分析深層次子程序的堆棧,然后依次類推,直至主程序(主程序也可視為特殊的子程序,扇入為0).采用這種自下而上過程的優(yōu)點(diǎn)是分析一個(gè)子程序時(shí),其所調(diào)用的子程序(如果扇出不為0)的平衡度和堆棧深度均已知,其對(duì)堆棧的影響可直接計(jì)入當(dāng)前所分析路徑,當(dāng)一個(gè)子程序被多次調(diào)用時(shí),可避免重復(fù)分析.

    與構(gòu)造調(diào)用關(guān)系圖的過程類似,分析堆棧深度仍采用深度優(yōu)先的方法.不同的是前者僅關(guān)注子程序調(diào)用指令,這里需要計(jì)算路徑中所有影響堆棧的指令,具體步驟如下:

    1)根據(jù)深度優(yōu)先的原則,分析第一條路徑的堆棧深度,并記錄路徑上各條指令所在地址的堆棧深度值.該路徑分析結(jié)束后,設(shè)置子程序平衡度為第一條路徑的平衡度,子程序堆棧深度為第一條路徑的堆棧深度.

    2)分析后繼路徑,如果該路徑上指令已經(jīng)被分析過,且在當(dāng)前路徑上該指令所在地址的堆棧值小于記錄的堆棧值,停止分析該路徑;否則更新該條指令所在地址的堆棧深度值,繼續(xù)分析該路徑上后繼指令.

    3)根據(jù)步驟2)中分析出的路徑平衡度與堆棧深度更新函數(shù)的平衡度和堆棧深度.

    4)重復(fù)步驟2)、3)直至分析完所有路徑.

    這個(gè)過程的優(yōu)點(diǎn)是能夠盡早排除那些不可能產(chǎn)生最大堆棧深度的路徑,避免做無用分析,同時(shí),由于按照調(diào)用層次自下而上分析子程序,每個(gè)子程序只須分析一次.但與構(gòu)建程序的調(diào)用關(guān)系圖一樣,在分析某些包含特殊情況的路徑時(shí)會(huì)遇到障礙.

    2 不確定因素分析及應(yīng)對(duì)措施

    前文已經(jīng)提到,有些特殊情況無法使用上面提到的方法進(jìn)行分析,下面介紹這幾種情況及解決方案.

    2.1不確定因素分析

    (1)動(dòng)態(tài)跳轉(zhuǎn):MCS-51有一條間接長(zhǎng)轉(zhuǎn)移指令,格式為:JMP @A+DPTR.該指令的轉(zhuǎn)移地址由數(shù)據(jù)指針DPTR和累加器A的內(nèi)容相加形成,從目標(biāo)碼難以確定轉(zhuǎn)移地址,影響子程序調(diào)用關(guān)系圖的構(gòu)建,因此無法按照上面的步驟完成分析.

    (2)遞歸:在構(gòu)建子程序調(diào)用關(guān)系圖時(shí)可以檢測(cè)出遞歸程序,但無法確定遞歸次數(shù),因此無法計(jì)算其堆棧深度.如果一個(gè)子程序調(diào)用了一個(gè)遞歸子程序,調(diào)用遞歸程序的路徑無法確定堆棧深度,因此子程序的堆棧深度也無法確定,依次類推,主程序的堆棧深度也不能確定.

    (3)不平衡循環(huán):這里的不平衡循環(huán)指循環(huán)體不是堆棧平衡的,循環(huán)對(duì)堆棧的影響會(huì)隨著循環(huán)次數(shù)的變化而變化,如下面的循環(huán),每循環(huán)一次堆棧就會(huì)加1,僅僅基于目標(biāo)碼做靜態(tài)分析難以確定其對(duì)堆棧的最終影響.如果函數(shù)包含了不平衡循環(huán),那么將無法直接利用1.2節(jié)所介紹的方法對(duì)其進(jìn)行分析.

    REL: PUSH A

    DJNZ R0, REL

    (4)直接改變SP指令:在MCS-51系統(tǒng)中,有一些可以改變SP值的指令,如MOV、INC、ANL等指令,均可以修改SP的值.由于本文介紹的方法為子程序計(jì)算出的堆棧深度是相對(duì)值,即相對(duì)子程序入口點(diǎn)的堆棧深度.當(dāng)子程序中包含直接改變SP的指令時(shí),無法確定與入口間的相對(duì)值,因此不能用該方法.但MOV SP,#data指令僅在主程序中時(shí),該方法依然適用.因?yàn)橹鞒绦蛉肟诙褩J冀K為0,相對(duì)堆棧深度即實(shí)際的堆棧深度,因此依然可以使用該方法進(jìn)行分析.

    2.2應(yīng)對(duì)措施

    針對(duì)上節(jié)提出的幾種不確定因素,可使用下面兩種方法解決:

    (1)人工輔助:盡管上幾種不確定因素會(huì)影響分析,但都可以被檢測(cè)出來,因此可以使用人工輔助的方法.檢測(cè)到異常情況時(shí),可由測(cè)試人員分析上下文,輔助堆棧分析程序完成后繼工作.為減少人工干預(yù)的工作量,可使用抽象解釋[5]方法強(qiáng)化該方法,增強(qiáng)易用性.

    (2)編程規(guī)范約束:由于MCS-51堆棧資源非常有限,最大堆棧深度為128字節(jié),再除去為數(shù)據(jù)區(qū)保留的空間,實(shí)際可用堆棧尚不足128字節(jié).因此,定義編程規(guī)范來約束開發(fā)人員,盡量避免使用可能造成堆棧溢出指令,是具有實(shí)際意義的.

    動(dòng)態(tài)跳轉(zhuǎn)指令使程序的控制流變得不確定,因此應(yīng)該盡量少用;遞歸函數(shù)的每次遞歸調(diào)用都會(huì)使用子程序調(diào)用指令,即使堆棧深度增2,堆棧開銷很大;不平衡循環(huán)由于對(duì)堆棧的影響都循環(huán)次數(shù)的影響,很容易造成堆棧溢出;在子程序中直接修改SP時(shí),在不同的地方調(diào)用該子程序會(huì)對(duì)堆棧產(chǎn)生不同的影響,也需要慎用.

    鑒于上述幾種不確定因素對(duì)堆棧安全的危害性比較大,因此,可考慮制定編程規(guī)范對(duì)這幾種情況進(jìn)行約束,如一旦檢測(cè)到目標(biāo)碼中存在不平衡循環(huán),可直接認(rèn)定軟件出現(xiàn)了問題[6].

    3 中斷對(duì)堆棧的影響

    中斷程序有其獨(dú)立的入口地址,在從主程序開始構(gòu)建調(diào)用關(guān)系圖時(shí)無法將中斷程序納入其中.但可以將其視為一個(gè)特殊的獨(dú)立程序,采用與主程序相同的分析過程單獨(dú)分析其最大堆棧深度.

    MCS-51共有6個(gè)中斷,分別是外部中斷0、定時(shí)器0、外部中斷1、定時(shí)器1、串行口、定時(shí)器2,共2個(gè)優(yōu)先級(jí),可通過軟件配置每個(gè)中斷的優(yōu)先級(jí)高低,低級(jí)中斷允許被高級(jí)中斷打斷.由于MCS-51的中斷服務(wù)程序沒有使用獨(dú)立堆棧空間,因此可以分為下面兩種情況計(jì)算軟件的最大堆棧深度:

    (1)軟件使用了一個(gè)級(jí)別的中斷

    最大堆棧深度=主程序最大堆棧深度+中斷服務(wù)程序堆棧深度的最大值;

    (2)軟件使用了兩個(gè)級(jí)別的中斷

    最大堆棧深度=主程序最大堆棧深度+高級(jí)中斷服務(wù)程序堆棧深度的最大值+低級(jí)中斷服務(wù)程序堆棧深度的最大值;

    采用這種方法計(jì)算的缺點(diǎn)是沒有考慮中斷的開關(guān)情況,由于軟件中經(jīng)常會(huì)有關(guān)中斷事件,所以主程序和中斷服務(wù)程序堆棧深度同時(shí)達(dá)到峰值的情況可能并不會(huì)出現(xiàn).如果考慮開關(guān)中斷情況,平均來說,分析出的堆棧值比直接進(jìn)行堆棧疊加小35%[7].

    4 實(shí)驗(yàn)驗(yàn)證

    基于上面的論述,可知即使出現(xiàn)動(dòng)態(tài)跳轉(zhuǎn)等不確定因素,也可以人工輔助完成分析.作者正是基于該方法開發(fā)了堆棧分析工具,其分析流程大致如下:

    1)選擇被分析軟件使用的中斷及優(yōu)先級(jí);

    2)構(gòu)建主程序的調(diào)用關(guān)系圖,如果構(gòu)建過程中出現(xiàn)了動(dòng)態(tài)跳轉(zhuǎn),工具提示動(dòng)態(tài)跳轉(zhuǎn)的位置信息,等待人工確定跳轉(zhuǎn)地址;

    3)如果人工確定了跳轉(zhuǎn)地址,那么繼續(xù)分析,直至構(gòu)建出完整的調(diào)用關(guān)系圖;否則分析失敗,退出;

    4)計(jì)算主程序和各個(gè)子程序的堆棧深度,同時(shí)檢測(cè)是否有遞歸子程序,以及子程序中是否包含不平衡循環(huán)和直接修改SP的指令;

    5)如果子程序中包含遞歸、不平衡循環(huán)或直接修改SP的指令,分析失敗,退出;

    6)按照上面的步驟分析各中斷服務(wù)程序?qū)Χ褩5挠绊懀?/p>

    7)根據(jù)中斷優(yōu)先級(jí),將中斷服務(wù)程序?qū)Χ褩5挠绊懪c主程序的堆棧深度進(jìn)行累加,求出軟件最大堆棧深度.

    表2是使用該工具分析4個(gè)MCS-51軟件所得出的統(tǒng)計(jì)數(shù)據(jù),其中子程序總數(shù)包括了中斷服務(wù)程序,其中所示的例子中遞歸和不平衡循環(huán)沒有出現(xiàn),動(dòng)態(tài)跳轉(zhuǎn)指令出現(xiàn)的次數(shù)也較低.盡管本文提出的方法無法自動(dòng)解決目標(biāo)碼中可能存在的不確定因素,但這些因素出現(xiàn)的次數(shù)較低時(shí),仍可以使用人工輔助的方法彌補(bǔ)其不足.

    表2 不確定因素指令統(tǒng)計(jì)

    5 結(jié) 論

    本文所提出的基于目標(biāo)碼的堆棧分析方法過程簡(jiǎn)單、易于實(shí)現(xiàn),可從MCS-51程序的目標(biāo)碼中直接分析出最壞情況下軟件使用的堆棧深度,對(duì)堆棧安全性檢查和優(yōu)化具有參考意義.但值得注意的是,靜態(tài)方法分析堆棧的問題在于分析出的堆棧深度往往大于實(shí)際的堆棧深度,因?yàn)榉治龀龅穆窂娇赡軐?shí)際上并不會(huì)被執(zhí)行.因此,如果采用靜態(tài)方法分析出的堆棧值超過了允許范圍,不可盲目認(rèn)定是軟件堆棧溢出,需要根據(jù)產(chǎn)生最大堆棧深度的路徑信息確認(rèn)該路徑是否有效.

    [1] Kleidermacher D N.Practical application of static analysis for embedded systems[J].Ada User Journal,2008, 29(1): 38-42

    [2] 劉通平.棧溢出的動(dòng)態(tài)檢測(cè)技術(shù)[J].計(jì)算機(jī)科學(xué),2007,34(9):282-286

    [3] Regehr J.Say not to stack overflow embedded systems design[Z].http:// www.embedded.com/columns/technicalinsights/47101892?_requestid=440562#

    [4] 孫涵芳, 徐愛卿.MCS-51/96系列單片機(jī)原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,1989,21-22

    [5] 常碩, 趙彬, 辛文逵.抽象解釋技術(shù)在嵌入式軟件測(cè)試中的應(yīng)用[J].中國測(cè)試技術(shù),2007,33(6):93-95

    [6] Dennis B, Niels D, Jens P.Static checking of interrupt-driven software[C].The 23rdInternational Conference on Software Engineering (ICSE) , Toronto, Canada ,May 2001

    [7] Regehr J, Alastair R, Kirk W.Eliminating stack overflow by abstract interpretation[C].The 3rdInternational Conference on Embedded Software (EMSOFT), Philadelphia, PA,October 2003

    AnApproachtoMCS-51ObjectStackDepthAnalysis

    ZHANG Xichao, GUO Xiangying

    (BeijingInstituteofControlEngineering,Beijing100190,China)

    In an embeded software, an object code-based stack analysis is a common means of stack inspection.An analysis-based approach is proposed to analyse MCS-51 series processor’s object code.This approach can obtain the worst case stack depth and also takes into account effects of interrupt service routines on the stack under different priorities.Using this method, a stack analysis tool for MCS-51 object can be quickly developed and its analyzed results give a reference to stack safety inspection and optimisation.

    MCS-51; object code; stack analysis; stack depth

    2009-11-06

    張西超(1983—),男,河南人,工程師,研究方向?yàn)榍度胧杰浖摂M測(cè)試平臺(tái)技術(shù)(e-mail:xichaozhang@163.com).

    TP31

    A

    1674-1579(2010)02-0047-04

    猜你喜歡
    主程序堆棧子程序
    淺談數(shù)控銑削技術(shù)代碼程序的嵌套方式研究
    電控冰箱軟件模塊化設(shè)計(jì)
    日用電器(2019年12期)2019-02-26 01:53:06
    嵌入式軟件堆棧溢出的動(dòng)態(tài)檢測(cè)方案設(shè)計(jì)*
    基于堆棧自編碼降維的武器裝備體系效能預(yù)測(cè)
    時(shí)光倒流 換回PotPlayer老圖標(biāo)
    淺談子程序在數(shù)控車編程中的應(yīng)用
    子程序在數(shù)控車加工槽中的應(yīng)用探索
    西門子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
    簡(jiǎn)化編程與子程序嵌套的應(yīng)用
    科技傳播(2011年24期)2011-08-29 05:39:46
    未經(jīng)授權(quán)的第三方軟件侵權(quán)問題研究
    ——以“騰訊與360之爭(zhēng)”為視角*
    精品久久久久久久毛片微露脸| 下体分泌物呈黄色| 天天躁日日躁夜夜躁夜夜| 丰满少妇做爰视频| 国产成人av激情在线播放| 99re6热这里在线精品视频| 大片免费播放器 马上看| 肉色欧美久久久久久久蜜桃| 中文亚洲av片在线观看爽 | 欧美成狂野欧美在线观看| 亚洲精品国产色婷婷电影| av福利片在线| 又大又爽又粗| 亚洲精品自拍成人| 欧美成狂野欧美在线观看| 2018国产大陆天天弄谢| av电影中文网址| 久久久久久久大尺度免费视频| 考比视频在线观看| 18在线观看网站| 欧美日韩亚洲国产一区二区在线观看 | 亚洲 欧美一区二区三区| 这个男人来自地球电影免费观看| av福利片在线| 极品人妻少妇av视频| 正在播放国产对白刺激| 啦啦啦视频在线资源免费观看| 99香蕉大伊视频| 欧美一级毛片孕妇| 少妇猛男粗大的猛烈进出视频| 黄色怎么调成土黄色| 国产高清国产精品国产三级| 久久这里只有精品19| 男女边摸边吃奶| 欧美黄色片欧美黄色片| 侵犯人妻中文字幕一二三四区| 蜜桃国产av成人99| 精品国产亚洲在线| 久久婷婷成人综合色麻豆| 亚洲av成人一区二区三| 国产精品一区二区免费欧美| 香蕉国产在线看| 亚洲av国产av综合av卡| 最新的欧美精品一区二区| 欧美日韩成人在线一区二区| 伦理电影免费视频| 亚洲欧美日韩另类电影网站| 国产91精品成人一区二区三区 | av不卡在线播放| 男女午夜视频在线观看| 黄频高清免费视频| 免费久久久久久久精品成人欧美视频| 亚洲欧美激情在线| a级片在线免费高清观看视频| 电影成人av| 色综合欧美亚洲国产小说| 一本大道久久a久久精品| 亚洲少妇的诱惑av| 人人妻人人澡人人爽人人夜夜| 国产国语露脸激情在线看| 亚洲精品av麻豆狂野| 午夜两性在线视频| 老汉色av国产亚洲站长工具| 99久久国产精品久久久| 国产成+人综合+亚洲专区| 免费看a级黄色片| 亚洲人成77777在线视频| 无人区码免费观看不卡 | 亚洲av第一区精品v没综合| 久久久久久亚洲精品国产蜜桃av| 色婷婷久久久亚洲欧美| 日韩欧美一区二区三区在线观看 | cao死你这个sao货| 国产成人啪精品午夜网站| 黄色成人免费大全| 国产日韩欧美在线精品| 在线观看人妻少妇| tocl精华| 日韩有码中文字幕| 一级片'在线观看视频| 国产男女内射视频| 菩萨蛮人人尽说江南好唐韦庄| 色综合欧美亚洲国产小说| 亚洲午夜理论影院| 老熟妇乱子伦视频在线观看| 亚洲精品成人av观看孕妇| 午夜精品国产一区二区电影| 在线观看66精品国产| 国产高清激情床上av| 亚洲成av片中文字幕在线观看| 性高湖久久久久久久久免费观看| 国产有黄有色有爽视频| 又大又爽又粗| 成人国产av品久久久| 性少妇av在线| 国产成人欧美在线观看 | 久久香蕉激情| 国产国语露脸激情在线看| 国产激情久久老熟女| 91老司机精品| www.自偷自拍.com| 最近最新中文字幕大全免费视频| 天堂8中文在线网| 久久婷婷成人综合色麻豆| 亚洲精品美女久久av网站| 无人区码免费观看不卡 | 日韩人妻精品一区2区三区| svipshipincom国产片| 国产精品一区二区精品视频观看| 精品少妇黑人巨大在线播放| 美女主播在线视频| 一本久久精品| h视频一区二区三区| 一边摸一边做爽爽视频免费| 亚洲精品美女久久久久99蜜臀| 久9热在线精品视频| 黄片播放在线免费| 一个人免费看片子| 国产色视频综合| 久久 成人 亚洲| 新久久久久国产一级毛片| 精品国产乱码久久久久久男人| 老司机午夜福利在线观看视频 | 极品教师在线免费播放| 免费av中文字幕在线| 亚洲成人免费电影在线观看| 欧美日韩亚洲综合一区二区三区_| 色综合欧美亚洲国产小说| 变态另类成人亚洲欧美熟女 | 精品久久久精品久久久| 亚洲精品一二三| 国产av又大| 国产成人免费无遮挡视频| 韩国精品一区二区三区| 纵有疾风起免费观看全集完整版| 精品国产乱子伦一区二区三区| 午夜精品国产一区二区电影| 国产精品av久久久久免费| 亚洲综合色网址| 又紧又爽又黄一区二区| 99re6热这里在线精品视频| 久久这里只有精品19| 欧美精品啪啪一区二区三区| 日本精品一区二区三区蜜桃| 国产区一区二久久| 精品一区二区三区视频在线观看免费 | 国产成人啪精品午夜网站| 黄网站色视频无遮挡免费观看| 国产一区二区激情短视频| 99热网站在线观看| 女同久久另类99精品国产91| 亚洲九九香蕉| 黄色a级毛片大全视频| 天天躁夜夜躁狠狠躁躁| 久久天躁狠狠躁夜夜2o2o| 黄色a级毛片大全视频| 国产在线一区二区三区精| 免费观看av网站的网址| av天堂久久9| 999精品在线视频| 日韩欧美一区二区三区在线观看 | 成人黄色视频免费在线看| 大片免费播放器 马上看| 精品一区二区三卡| 日韩有码中文字幕| 女同久久另类99精品国产91| 99精国产麻豆久久婷婷| 欧美国产精品一级二级三级| 乱人伦中国视频| 国产福利在线免费观看视频| 丁香六月欧美| 欧美变态另类bdsm刘玥| 操美女的视频在线观看| 亚洲熟女毛片儿| 性高湖久久久久久久久免费观看| 搡老乐熟女国产| 999久久久国产精品视频| 男女免费视频国产| 一级毛片精品| 国产精品久久久人人做人人爽| 欧美乱妇无乱码| 50天的宝宝边吃奶边哭怎么回事| 国产一区有黄有色的免费视频| 男女下面插进去视频免费观看| √禁漫天堂资源中文www| 国产精品久久久久久精品古装| 精品久久久久久久毛片微露脸| 久久久国产一区二区| 国产亚洲一区二区精品| 国产免费福利视频在线观看| 亚洲精品av麻豆狂野| 精品一区二区三卡| 99精品久久久久人妻精品| 色婷婷久久久亚洲欧美| 一二三四社区在线视频社区8| 日本vs欧美在线观看视频| 亚洲一区中文字幕在线| 99在线人妻在线中文字幕 | 色老头精品视频在线观看| 91精品三级在线观看| 桃花免费在线播放| 久久久久久久大尺度免费视频| 满18在线观看网站| 美女福利国产在线| 少妇被粗大的猛进出69影院| 黄色片一级片一级黄色片| 色老头精品视频在线观看| 啦啦啦 在线观看视频| 大片电影免费在线观看免费| 老熟女久久久| 免费观看a级毛片全部| 岛国在线观看网站| 90打野战视频偷拍视频| 国产97色在线日韩免费| 一本—道久久a久久精品蜜桃钙片| videos熟女内射| 国产高清视频在线播放一区| av在线播放免费不卡| 五月开心婷婷网| 国产精品成人在线| 久久精品aⅴ一区二区三区四区| 欧美av亚洲av综合av国产av| 久久国产精品大桥未久av| 国产欧美日韩综合在线一区二区| 亚洲avbb在线观看| 亚洲一区中文字幕在线| 美女午夜性视频免费| 人人妻人人澡人人爽人人夜夜| 最黄视频免费看| 看免费av毛片| 久久婷婷成人综合色麻豆| 午夜福利一区二区在线看| 别揉我奶头~嗯~啊~动态视频| 在线十欧美十亚洲十日本专区| 99在线人妻在线中文字幕 | 国产片内射在线| 乱人伦中国视频| 欧美亚洲 丝袜 人妻 在线| 免费在线观看视频国产中文字幕亚洲| 国产亚洲欧美在线一区二区| 两个人看的免费小视频| 国产精品久久久人人做人人爽| 女人精品久久久久毛片| 久久婷婷成人综合色麻豆| 久久久久久久精品吃奶| 啦啦啦中文免费视频观看日本| 搡老岳熟女国产| 免费观看a级毛片全部| 777久久人妻少妇嫩草av网站| 成人免费观看视频高清| 精品一区二区三区av网在线观看 | 久久精品亚洲av国产电影网| 欧美激情久久久久久爽电影 | 手机成人av网站| 精品久久久久久久毛片微露脸| 国产在线精品亚洲第一网站| 人妻 亚洲 视频| 十分钟在线观看高清视频www| 亚洲精品在线美女| 国产黄色免费在线视频| 亚洲午夜精品一区,二区,三区| 欧美日韩中文字幕国产精品一区二区三区 | 精品国内亚洲2022精品成人 | 天堂动漫精品| 久久ye,这里只有精品| 搡老岳熟女国产| 热99re8久久精品国产| 丰满饥渴人妻一区二区三| 久久人妻熟女aⅴ| 午夜福利视频精品| 一二三四社区在线视频社区8| 国产亚洲午夜精品一区二区久久| 天天躁狠狠躁夜夜躁狠狠躁| 亚洲国产av影院在线观看| 不卡一级毛片| 国产成人影院久久av| 中文字幕精品免费在线观看视频| 亚洲av日韩精品久久久久久密| 国产人伦9x9x在线观看| av欧美777| 日本撒尿小便嘘嘘汇集6| 12—13女人毛片做爰片一| 国产黄色免费在线视频| av免费在线观看网站| 少妇裸体淫交视频免费看高清 | 最新在线观看一区二区三区| 伊人久久大香线蕉亚洲五| a在线观看视频网站| 老司机深夜福利视频在线观看| 女性生殖器流出的白浆| 国产成人免费无遮挡视频| 宅男免费午夜| 在线播放国产精品三级| 久久精品aⅴ一区二区三区四区| 亚洲成国产人片在线观看| 中文字幕制服av| 国产成人影院久久av| 手机成人av网站| 中文字幕另类日韩欧美亚洲嫩草| 男男h啪啪无遮挡| 精品人妻熟女毛片av久久网站| 免费av中文字幕在线| 国产又爽黄色视频| 亚洲成国产人片在线观看| 嫩草影视91久久| 两性夫妻黄色片| 亚洲精品成人av观看孕妇| 交换朋友夫妻互换小说| 手机成人av网站| 男女之事视频高清在线观看| 精品高清国产在线一区| 亚洲精品国产精品久久久不卡| 黄片播放在线免费| 中文字幕人妻丝袜一区二区| 欧美久久黑人一区二区| 他把我摸到了高潮在线观看 | 成年人免费黄色播放视频| 两个人看的免费小视频| 一本一本久久a久久精品综合妖精| 免费av中文字幕在线| 精品国产一区二区三区四区第35| 桃花免费在线播放| 色在线成人网| 最新在线观看一区二区三区| 天天躁狠狠躁夜夜躁狠狠躁| 久久久久国产一级毛片高清牌| av线在线观看网站| 99久久精品国产亚洲精品| 少妇粗大呻吟视频| 91国产中文字幕| 亚洲欧美精品综合一区二区三区| 欧美在线一区亚洲| 国产在视频线精品| 一夜夜www| 咕卡用的链子| 国产av精品麻豆| 国产成人av激情在线播放| 亚洲第一青青草原| 久久人妻av系列| 1024香蕉在线观看| 青青草视频在线视频观看| 一进一出好大好爽视频| 欧美精品av麻豆av| 久久天堂一区二区三区四区| av一本久久久久| av欧美777| 国产亚洲欧美精品永久| 国产不卡一卡二| 国产成人欧美在线观看 | 狠狠狠狠99中文字幕| 高清欧美精品videossex| 国产一区二区三区在线臀色熟女 | 丰满迷人的少妇在线观看| 国产欧美日韩一区二区三| 国产精品久久电影中文字幕 | 日韩欧美三级三区| 久久人人爽av亚洲精品天堂| 高清视频免费观看一区二区| 最近最新中文字幕大全电影3 | 国产一区二区激情短视频| 色视频在线一区二区三区| 亚洲第一青青草原| 黄片播放在线免费| 19禁男女啪啪无遮挡网站| 亚洲色图综合在线观看| 国产在线免费精品| 黑人操中国人逼视频| 国产av精品麻豆| 一本综合久久免费| 天堂中文最新版在线下载| 欧美性长视频在线观看| 少妇裸体淫交视频免费看高清 | 国产人伦9x9x在线观看| 嫩草影视91久久| 日韩人妻精品一区2区三区| 99九九在线精品视频| 男女无遮挡免费网站观看| 91国产中文字幕| 欧美精品啪啪一区二区三区| 亚洲精品美女久久久久99蜜臀| 一进一出抽搐动态| 两性午夜刺激爽爽歪歪视频在线观看 | 啦啦啦免费观看视频1| 超色免费av| 一本久久精品| 美女高潮喷水抽搐中文字幕| 制服诱惑二区| 757午夜福利合集在线观看| 高清视频免费观看一区二区| 日本wwww免费看| 岛国在线观看网站| 国产伦人伦偷精品视频| 亚洲专区字幕在线| 在线看a的网站| 老熟妇乱子伦视频在线观看| 欧美亚洲 丝袜 人妻 在线| 激情视频va一区二区三区| 青草久久国产| 91字幕亚洲| 国产国语露脸激情在线看| 久久精品国产a三级三级三级| 日韩有码中文字幕| 下体分泌物呈黄色| 一区二区三区精品91| 丰满饥渴人妻一区二区三| 如日韩欧美国产精品一区二区三区| 欧美亚洲日本最大视频资源| 18禁黄网站禁片午夜丰满| 精品亚洲乱码少妇综合久久| 国产成人免费观看mmmm| 午夜福利视频在线观看免费| 老司机福利观看| 两个人免费观看高清视频| 黄色丝袜av网址大全| 一进一出好大好爽视频| 国产99久久九九免费精品| 日韩熟女老妇一区二区性免费视频| 一区二区三区国产精品乱码| 国内毛片毛片毛片毛片毛片| 国产精品久久久久久精品电影小说| 中亚洲国语对白在线视频| 亚洲欧美日韩另类电影网站| 国产熟女午夜一区二区三区| 国产男靠女视频免费网站| 成人国语在线视频| 精品视频人人做人人爽| 欧美久久黑人一区二区| 久久精品人人爽人人爽视色| 国产精品熟女久久久久浪| 电影成人av| 精品国产亚洲在线| 精品一区二区三区四区五区乱码| 国产又爽黄色视频| 久久人妻av系列| 成年人免费黄色播放视频| 亚洲av成人一区二区三| 亚洲欧美一区二区三区黑人| 国产视频一区二区在线看| 一区在线观看完整版| 999久久久国产精品视频| 国产区一区二久久| 欧美激情久久久久久爽电影 | 一边摸一边抽搐一进一出视频| 久久久久久久精品吃奶| 精品一区二区三区视频在线观看免费 | 999精品在线视频| 久久久国产成人免费| 好男人电影高清在线观看| 久久久精品国产亚洲av高清涩受| 欧美在线黄色| av天堂久久9| 啦啦啦 在线观看视频| 天天躁日日躁夜夜躁夜夜| 69精品国产乱码久久久| 嫩草影视91久久| 精品久久蜜臀av无| 国产精品久久久人人做人人爽| 午夜免费鲁丝| 亚洲av电影在线进入| 757午夜福利合集在线观看| 又大又爽又粗| 欧美+亚洲+日韩+国产| 最新在线观看一区二区三区| 日韩欧美一区二区三区在线观看 | 久久精品亚洲精品国产色婷小说| 夜夜爽天天搞| 国产无遮挡羞羞视频在线观看| 在线观看免费午夜福利视频| 免费少妇av软件| 高清在线国产一区| 国产亚洲欧美在线一区二区| 757午夜福利合集在线观看| a在线观看视频网站| 狠狠精品人妻久久久久久综合| 两人在一起打扑克的视频| 一区二区日韩欧美中文字幕| www.熟女人妻精品国产| 91精品三级在线观看| 搡老熟女国产l中国老女人| 肉色欧美久久久久久久蜜桃| 亚洲熟女毛片儿| 精品国产一区二区久久| 欧美黑人精品巨大| 看免费av毛片| 亚洲欧美一区二区三区黑人| 动漫黄色视频在线观看| 夜夜夜夜夜久久久久| 国产免费av片在线观看野外av| 啦啦啦中文免费视频观看日本| 少妇裸体淫交视频免费看高清 | 天堂8中文在线网| 日韩视频一区二区在线观看| 9热在线视频观看99| 亚洲天堂av无毛| 女人高潮潮喷娇喘18禁视频| 成人三级做爰电影| 亚洲男人天堂网一区| 男男h啪啪无遮挡| 欧美在线一区亚洲| 久久久久久人人人人人| 午夜激情久久久久久久| 国产精品二区激情视频| 欧美人与性动交α欧美软件| 青草久久国产| 天天躁狠狠躁夜夜躁狠狠躁| 国产在线精品亚洲第一网站| 欧美激情高清一区二区三区| 天堂俺去俺来也www色官网| aaaaa片日本免费| 国产免费av片在线观看野外av| 国产免费视频播放在线视频| 久久99一区二区三区| 一区二区三区激情视频| 成人国产av品久久久| 正在播放国产对白刺激| 精品久久久久久久毛片微露脸| 精品福利观看| 黄色片一级片一级黄色片| 日韩精品免费视频一区二区三区| 啦啦啦在线免费观看视频4| 亚洲成av片中文字幕在线观看| 一本久久精品| 欧美精品一区二区免费开放| 91成人精品电影| 久久热在线av| 免费高清在线观看日韩| 亚洲欧美日韩另类电影网站| 性少妇av在线| 精品乱码久久久久久99久播| 久久精品亚洲精品国产色婷小说| 成人手机av| 亚洲国产毛片av蜜桃av| 精品国产乱子伦一区二区三区| 亚洲av第一区精品v没综合| 蜜桃国产av成人99| 亚洲综合色网址| 国产欧美亚洲国产| 成年人午夜在线观看视频| 久久香蕉激情| 精品一品国产午夜福利视频| 成人精品一区二区免费| 亚洲精品自拍成人| 免费看a级黄色片| 亚洲avbb在线观看| 亚洲av日韩精品久久久久久密| av免费在线观看网站| 日本wwww免费看| 欧美午夜高清在线| 久久精品国产综合久久久| 午夜福利在线观看吧| 人人妻,人人澡人人爽秒播| svipshipincom国产片| 免费高清在线观看日韩| 黄网站色视频无遮挡免费观看| 在线av久久热| 国产在线视频一区二区| 亚洲色图av天堂| 99热国产这里只有精品6| av在线播放免费不卡| 99国产精品99久久久久| 亚洲一区二区三区欧美精品| videos熟女内射| 黄片播放在线免费| 亚洲一码二码三码区别大吗| 久久人人97超碰香蕉20202| 国产亚洲午夜精品一区二区久久| 午夜福利在线免费观看网站| 亚洲中文字幕日韩| 首页视频小说图片口味搜索| 高清视频免费观看一区二区| 久久久久网色| 精品国产一区二区久久| 欧美激情 高清一区二区三区| 两性午夜刺激爽爽歪歪视频在线观看 | 男女床上黄色一级片免费看| 五月天丁香电影| 午夜老司机福利片| 热99久久久久精品小说推荐| 咕卡用的链子| 波多野结衣一区麻豆| 99re在线观看精品视频| 中文字幕高清在线视频| 大香蕉久久成人网| 美女午夜性视频免费| 男男h啪啪无遮挡| 黄片大片在线免费观看| 美女午夜性视频免费| 一级毛片精品| 99riav亚洲国产免费| 在线观看一区二区三区激情| 国产成人免费无遮挡视频| 久久久久国内视频| 国产精品久久久av美女十八| 国产1区2区3区精品| 一级,二级,三级黄色视频| 在线观看人妻少妇| 国精品久久久久久国模美| 这个男人来自地球电影免费观看| 国产在线观看jvid| 午夜福利视频精品| 国产黄频视频在线观看| 一区福利在线观看| 大片免费播放器 马上看| 欧美精品一区二区免费开放| 午夜福利乱码中文字幕| 美国免费a级毛片| 亚洲色图 男人天堂 中文字幕| 精品亚洲乱码少妇综合久久| 精品一区二区三区av网在线观看 | 夜夜骑夜夜射夜夜干| 在线观看免费午夜福利视频| kizo精华| 欧美性长视频在线观看| 久久这里只有精品19| 91精品三级在线观看|