亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        微程序控制器擴展指令研究

        2019-06-17 10:02:06宗德才王康康
        計算機應(yīng)用與軟件 2019年6期
        關(guān)鍵詞:表達式寄存器乘法

        宗德才 王康康

        1(常熟理工學(xué)院計算機科學(xué)與工程學(xué)院 江蘇 常熟 215500)2(江蘇科技大學(xué)數(shù)理學(xué)院 江蘇 鎮(zhèn)江 212003)

        0 引 言

        “計算機組成原理”課程是計算機相關(guān)專業(yè)的核心課程之一,學(xué)好該課程對于學(xué)生建立計算機系統(tǒng)整機概念和培養(yǎng)學(xué)生分析、設(shè)計計算機系統(tǒng)的能力至關(guān)重要[1]?!坝嬎銠C組成原理”是理論性和實踐性都很強的一門課程,其中的實踐實驗環(huán)節(jié),是學(xué)好“計算機組成原理”課程的關(guān)鍵[2]。

        文獻[3]設(shè)計了4位乘法指令與8位除4位的除法指令,文獻[4]設(shè)計了基于TEC-XP指令級、微體系級的仿真系統(tǒng)以及脫機運算器、中斷嵌套和I/O通信三大部件實驗的仿真軟件,文獻[5]、文獻[6]將EDA軟件Proteus應(yīng)用于教學(xué)實驗中,文獻[4]、文獻[5]、文獻[6]方式的缺點是學(xué)生無法動手操作,很難形成對計算機硬件的直觀理解,并且都未涉及乘除指令的實現(xiàn)。文獻[7]設(shè)計了一個8位模型機,控制器包含了14條指令,但未包含乘法、除法等指令。文獻[8]設(shè)計了加法、取數(shù)、轉(zhuǎn)移等指令,但并未設(shè)計乘除指令。文獻[9]要求學(xué)生至少設(shè)計實現(xiàn)7條指令,但并未要求設(shè)計乘除指令。

        目前,我校計算機組成原理實驗教學(xué)內(nèi)容主要是基于清華大學(xué)計算機系研制的TEC-XP16計算機組成原理實驗系統(tǒng)而開展進行的。與大多數(shù)高校一樣,該課程的實驗內(nèi)容,還是停留在驗證性實驗階段,為了使學(xué)生更好掌握計算機的各個組成部件的工作原理,理解指令的執(zhí)行流程,系統(tǒng)地建立計算機整機概念,培養(yǎng)學(xué)生的設(shè)計、創(chuàng)新能力,需要開發(fā)一些設(shè)計性實驗,如在CPU的控制器中擴展一些新指令。

        文獻[10]介紹了TH-union教學(xué)機微程序控制器部件實驗的原理及實驗步驟,屬于驗證性實驗,沒有擴展新指令。文獻[11]在TEC-2000教學(xué)機微程序控制器中設(shè)計實現(xiàn)了四條擴展指令,NXOR DR,SR、SWRM DR,[SR]、ADTW DR與ADRM DR,[SR],并將擴展的新指令用程序進行了驗證。文獻[12]在TEC-2000教學(xué)機微程序控制器中設(shè)計實現(xiàn)了兩條擴展指令,NXOR DR,SR與SWRM DR,[SR],并將擴展的新指令用程序進行了驗證。文獻[11]和文獻[12]在TEC-2000教學(xué)機微程序控制器中擴展的指令都比較簡單,每條擴展指令只需要1~4條微指令即可實現(xiàn)。目前,國內(nèi)外還沒有研究在TEC-XP16教學(xué)機微程序控制器中擴展較復(fù)雜指令,如乘法指令、除法指令的文獻。本文提出了一種在TEC-XP16教學(xué)機微程序控制器中設(shè)計MUL乘法指令與DIV除法指令的方法,所設(shè)計的MUL指令與DIV指令分別需要25條微指令和29條微指令組成的微程序來實現(xiàn)。然后,以擴展MUL指令為例,詳細介紹了如何在控制器的源文件中添加擴展指令的控制信號的邏輯表達式、編譯控制器的源文件、對MACH器件進行編程、編寫程序驗證擴展指令是否正確的整個過程。最后,我們以實驗方式驗證了所設(shè)計和實現(xiàn)的乘法指令與除法指令的功能。

        1 基本組成及其工作原理

        微程序控制器的核心部件是控制存儲器,控制存儲器用于存放全部微程序。每一條機器指令對應(yīng)一個微程序,每個微程序由若干條微指令組成,每條微指令對應(yīng)一個或多個控制信號。微指令是以二進制代碼形式表示的,每一位代表一個控制信號,若某位為1,表示對應(yīng)的控制信號有效,若某位為0,表示對應(yīng)的控制信號無效。在程序執(zhí)行過程中,將逐條執(zhí)行每條指令對應(yīng)的每一條微指令,用微指令中的控制命令字段控制計算機各功能部件的運行,并用微指令中的下地址字段形成后續(xù)微指令的地址[13]。

        在TEC-XP16教學(xué)計算機中,微程序控制器與組合邏輯控制器的主要邏輯電路都是由一片MACH芯片實現(xiàn)的。微程序控制器由控制存儲器、微指令寄存器、映射指令操作碼為微指令地址的MAPROM、產(chǎn)生微指令是否轉(zhuǎn)移信號CC的條件判斷線路SCC GAL、實現(xiàn)微指令字中的下條微指令地址和MAPROM輸出的下條微指令地址二選一功能的線路、確定微指令執(zhí)行次序的Am2910芯片等部分組成[14]。

        在TEC-XP16教學(xué)計算機中擴展新指令時,首先,要設(shè)計好新指令對應(yīng)的微程序,然后將設(shè)計好的組成微程序的所有微指令寫入控制存儲器中。

        在以前的教學(xué)機產(chǎn)品中,如TEC-2000教學(xué)機中,控制存儲器中的內(nèi)容是保存在ROM芯片中的,而在TEC-XP16教學(xué)計算機中,控制存儲器的內(nèi)容不是保存在ROM芯片中的,控制存儲器的內(nèi)容是用組合邏輯表達式表示的[14]。

        2 設(shè)計微程序控制器的擴展指令

        在TEC-XP16教學(xué)機中擴展指令過程中,首先,根據(jù)設(shè)計好的新指令對應(yīng)的微程序修改描述MACH芯片功能的ABEL語言源程序;然后將修改后的ABEL語言程序用ISP LEVER軟件編譯成.jed文件,接著將.jed文件下載到MACH芯片中;最后,在教學(xué)機上調(diào)試運行包含擴展指令的教學(xué)機程序。

        在現(xiàn)有的TEC-XP16教學(xué)機中,描述MACH芯片功能的ABEL語言源程序同時實現(xiàn)了組合邏輯控制器與微程序控制器,但兩種控制器都只能執(zhí)行29條基本指令。本文在TEC-XP16教學(xué)機微程序控制器中設(shè)計實現(xiàn)了兩條擴展指令:乘法指令MUL DR,SR與除法指令DIV DR,SR。

        2.1 設(shè)計條件

        (1) 硬件:TEC-XP16教學(xué)機,PC機,Lattice USB下載電纜HW-USB-2A。

        (2) 軟件:Lattice ispLEVER Classic 2.0軟件、WinPcec軟件。

        2.2 乘法指令與除法指令的設(shè)計過程

        在TEC-XP16教學(xué)機的微程序控制器中擴展指令的主要過程如下:

        (1) 確定乘法指令與除法指令的格式和功能,如表1所示。

        表1 MUL指令與DIV指令的指令格式與功能

        (2) 按乘法指令與除法指令的功能和格式,設(shè)計8位無符號數(shù)乘法算法,8位無符號數(shù)除法算法,如算法1,算法2所示。

        算法1(8位無符號數(shù)乘法算法) 被乘數(shù)與乘數(shù)都用8位無符號數(shù)表示,被乘數(shù)與乘數(shù)分別放在DR、SR寄存器,乘積為16位無符號數(shù),乘積16位放R6寄存器。

        (1) 保存R3、R8寄存器內(nèi)容到堆棧;

        (2) 初始化,部分積R6初始化為0,R3、R8寄存器初始化為8;

        (3) 將DR寄存器內(nèi)容左移8位;

        (4) 將SR寄存器內(nèi)容右移1位,最低位移入C觸發(fā)器;

        (5) 如果C為1,則轉(zhuǎn)(6),如果C為0,轉(zhuǎn)(7);

        (6) (R6)+(DR)→R6;

        (7) R6寄存器內(nèi)容右移一位,最低位移入C觸發(fā)器;

        (8) R8減1,結(jié)果不為0,則轉(zhuǎn)(4),結(jié)果為0,結(jié)束;

        (9) 出?;謴?fù)R3、R8寄存器內(nèi)容。

        算法2(8位無符號數(shù)除法算法) 被除數(shù)與除數(shù)都用8位無符號數(shù)表示,被除數(shù)與除數(shù)分別放在DR、SR寄存器,R9寄存器放8位商。

        (1) 保存R3寄存器內(nèi)容到堆棧;

        (2) 初始化,R3初始化為9(上商9次),R9初始化為0;

        (3) (DR)-(SR)→DR;

        (4) 如果S為0,則轉(zhuǎn)(5),如果S為1,轉(zhuǎn)(9);

        (5) R3減1,結(jié)果不為0,則轉(zhuǎn)(6),結(jié)果為0,則轉(zhuǎn)(12);

        (6) 將R9寄存器內(nèi)容增1,轉(zhuǎn)(4);

        (7) 將R9寄存器內(nèi)容左移一位,將DR寄存器內(nèi)容左移一位;

        (8) (DR)-(SR)→DR,轉(zhuǎn)(4);

        (9) R3減1,結(jié)果不為0,則轉(zhuǎn)(10),結(jié)果為0,則轉(zhuǎn)(13);

        (10) 將R9寄存器內(nèi)容左移一位,將DR寄存器內(nèi)容左移一位;

        (11) (DR)+(SR)→DR,轉(zhuǎn)(4);

        (12) 將R9寄存器內(nèi)容增1;

        (13) 出?;謴?fù)R3寄存器內(nèi)容。

        (3) 根據(jù)乘除指令的算法,劃分指令執(zhí)行步驟并設(shè)計每一步的執(zhí)行功能,MUL指令的執(zhí)行步驟表如表2所示。DIV指令的指令執(zhí)行步驟表由于論文篇幅關(guān)系省略。

        表2 MUL指令的執(zhí)行步驟表

        (4) 根據(jù)指令執(zhí)行步驟表,設(shè)計微指令地址和下地址字段的取值,并設(shè)計每一個控制信號的狀態(tài)值,如表3、表4所示。乘法指令的操作碼為E8H,微程序入口地址為6AH,除法指令的操作碼為E9H,微程序入口地址為87H。

        表3 MUL指令的微程序表

        續(xù)表3

        表4 DIV指令的微程序表

        續(xù)表4

        如圖1所示,一條微指令由16位的下地址字段和32位的控制命令字段共同組成,下地址字段用于正確給出下一條微指令的地址,控制命令字段給出的32位控制信號用于控制教學(xué)機各功能部件的運行[13]。

        微下地址命令碼微轉(zhuǎn)移條件MRWI2-I0I8-I6I5-I3B口地址A口地址SSTSSHSCIDC2DC116位下地址字段32位控制命令字段

        圖1 TEC-XP16教學(xué)機的微指令格式

        圖1中,命令碼CI3~CI0為0010時,根據(jù)指令的操作碼從MAPROM找到該指令對應(yīng)的微程序的入口地址,從而開始該條指令的執(zhí)行。命令碼CI3~CI0為1110時,順序執(zhí)行,即執(zhí)行緊跟在本條微指令后面的那條微指令,(μPC)+1→μPC。

        如表5所示,命令碼CI3~CI0為0011時,用于條件微轉(zhuǎn)移控制,微轉(zhuǎn)移條件SCC3~SCC0用于條件微轉(zhuǎn)移時給出轉(zhuǎn)移依據(jù)的條件,條件滿足時發(fā)生轉(zhuǎn)移,下一條微指令的地址為當(dāng)前微指令中微下地址字段的內(nèi)容;條件不滿足,順序執(zhí)行[14]。

        表5 條件微指令轉(zhuǎn)移所依據(jù)的判斷條件表

        (5) 根據(jù)表3和表4,修改描述MACH芯片功能的ABEL語言源程序,編譯適配后下載到MACH芯片中。

        (6) 寫一個包含所設(shè)計的乘法指令與除法指令的教學(xué)機程序,通過運行該程序檢查執(zhí)行結(jié)果的正確性,驗證設(shè)計的乘除指令是否正確。

        3 MUL擴展指令的實現(xiàn)

        下面將以MUL指令為例,介紹在微程序控制器的ABEL源文件中添加擴展指令的控制信號的邏輯表達式,編譯控制器的ABEL源文件,對MACH器件編程,編寫程序驗證擴展指令是否正確的整個過程。

        (1) 啟動Lattice ispLEVER Classic 2.0中的ispLEVER Classic Project Navigator軟件,新建一個項目,項目名稱必須是lc4256。

        (2) 選擇器件類型,如圖2所示。

        圖2 選擇器件類型

        (3) 單擊“Add Source”按鈕,添加控制器源文件m256c.abl。然后,單擊“完成”按鈕。

        (4) 右鍵單擊m256c.abl文件,選擇“Open”命令。在文本編輯器中打開m256c.abl文件。

        (5) 在文本編輯器中修改m256c.abl控制器源文件(文中字體加粗的代碼是添加的代碼)。

        我們設(shè)計的MUL指令的操作碼為E8H,因此,在RET=(IR==[1,0,0,0,1,1,1,1]);后面加一行代碼:

        MUL=(IR==[1,1,1,0,1,0,0,0]);

        依據(jù)表3 MUL指令的微程序表修改CC信號的邏輯表達式,當(dāng)CC信號為低電平時微程序執(zhí)行轉(zhuǎn)移,為高電平時則順序執(zhí)行。當(dāng)SCC3~SCC0為0100,NADR為01110101并且Z為0時,CC為低電平,即當(dāng)Z為0執(zhí)行地址為77H的JRNZ 75微指令后將轉(zhuǎn)移到75H地址執(zhí)行微指令。當(dāng)SCC3~SCC0為0100,NADR為01111011并且C為0時,CC為低電平,即當(dāng)C為0執(zhí)行地址為79H的JRNC 7B微指令后將轉(zhuǎn)移到7BH地址執(zhí)行微指令。當(dāng)SCC3~SCC0為0100,NADR為00110000并且Z為1時,CC為低電平,即當(dāng)Z為1執(zhí)行地址為7DH的JRZ 7F微指令后將轉(zhuǎn)移到30H地址執(zhí)行微指令。修改后的CC0表達式如下:

        CC0=!SCC3&!SCC2&!SCC1&!SCC0

        #!SCC3& SCC2& SCC1&!SCC0&(IN_)

        #!SCC3& SCC2&!SCC1&!SCC0&(JRC)&!C

        #!SCC3& SCC2&!SCC1&!SCC0&(JRNC)&C

        #!SCC3& SCC2&!SCC1&!SCC0&(JRZ)&!Z

        #!SCC3&SCC2&!SCC1&!SCC0&(JRNZ)&Z

        #!SCC3&SCC2&!SCC1&!SCC0&(MUL)&

        (NADR==[0,1,1,1,0,1,0,1])&(Z==0)

        #!SCC3& SCC2&!SCC1&!SCC0&(MUL)&

        (NADR==[0,1,1,1,1,0,1,1])&(C==0)

        #!SCC3& SCC2&!SCC1&!SCC0&(MUL)&

        (NADR==[0,1,1,1,1,1,1,1])&(Z==1)

        # CCM;

        CCM=!SCC3& SCC2& SCC1& SCC0&(PUSH)

        #!SCC3& SCC2& SCC1& SCC0&(POP)

        #!SCC3& SCC2&!SCC1& SCC0&(JRS)&!S

        #!SCC3& SCC2&!SCC1& SCC0&(JRNS)&S

        #!SCC3&!SCC2& SCC1&!SCC0&!INT;

        !CC=CC0;

        如圖3所示,MACH芯片向AM2910器件提供8位下地址信息D7~D0,該地址有2個來源[15],通過AM2910產(chǎn)生的_PL和_MAP信號進行選擇,當(dāng)_PL為低時,該地址來自微指令中的8位下地址字段NADR7~NADR0;當(dāng)_MAP為低時,該地址來自MAPROM的輸出,MAPROM是通過組合邏輯表達式來實現(xiàn)的。

        圖3 TEC-XP16教學(xué)機控制器的總體組成

        我們設(shè)計的MUL 指令的微程序入口地址為6AH,因此,D0、D2、D4、D7表達式不需要修改,在D6、D5、D3、D1的邏輯表達式中需增加MUL匯編指令。修改后的D1、D3、D5、D6的邏輯表達式如下:

        D1=!C_M&(!_MAP&(AND#OR#TEST#MVRR#SHL#SHR#IN_#OUT#POP#POPF#LDRR#JMPA#CALA#RET#IRET#NOT#ASR#CLC#STC#JMPR#LDRA#STRA#SWRR#MUL)#NADR1&!_PL);

        D3=!C_M&(!_MAP&(XOR_#CMP#TEST#MVRR#INC#DEC#SHR#SHL#STRR#LDRR#MVRD#JMPA#CALA#EI#DI#JMPR#JRS#JRNS#LDRA#LDRX#STRA#SWRR#MUL)#NADR3&!_PL);

        D5=!C_M&(!_MAP&(RET#IRET#JRS#JRNS#CALR#STRX#SWRR#MUL)#NADR5&!_PL);

        D6=!C_M&(!_MAP&(EI#DI#IRET#ADC#SBB#NOT#ASR#RCL#RCR#CLC#STC#JMPR#JRS#JRNS#LDRA#LDRX#STRA#STRX#CALR#SWRR#MUL)#NADR6&!_PL);

        按照所設(shè)計的乘法指令和除法指令的微程序表中的內(nèi)容修改描述 MACH 芯片功能的 ABEL語言源程序,即分別寫出微指令每一位信號的完整的邏輯表達式,即把在微程序表中該位信號取值為1或0時所對應(yīng)的微指令地址或在一起。

        依據(jù)表3 MUL指令微程序表的內(nèi)容修改微程序控制器16位下地址字段的邏輯表達式,即微下地址NADR7~ NADR0、命令碼CI3~CI0、微轉(zhuǎn)移條件SCC3~SCC0的邏輯表達式。由于論文篇幅關(guān)系代碼省略。

        依據(jù)表3 MUL指令微程序表的內(nèi)容修改微程序控制器32位控制命令字段的邏輯表達式。其中,DC2_200、DC2_100、DC2_000、DC1_200、DC1_100、DC1_000表達式不需要修改。由于論文篇幅關(guān)系代碼省略。

        (6) 保存m256c.abl文件。

        (7) 在左側(cè)源文件窗口中單擊m256c.abl文件,雙擊Compile Logic任務(wù)項,即對源文件m256c.abl進行編譯。

        (8) 在左側(cè)源文件窗口中點擊器件圖標(biāo),在右側(cè)窗口中雙擊JEDEC File任務(wù)項生成lc4256.jed文件。完成后以綠色的“√”標(biāo)記。若有警告信息,則以黃色的“!”標(biāo)記,警告信息一般并不影響JEDEC文件的使用。

        (9) 啟動Lattice ispLEVER Classic 2.0中的ispVM System軟件,彈出主界面。

        (10) 將教學(xué)機左下方五個黑色的控制開關(guān)撥為10100(1表示往上撥,0表示往下?lián)?。

        (11) 通過Lattice USB 下載電纜HW-USB-2A連接PC機與教學(xué)計算機上MACH芯片,打開教學(xué)計算機電源。

        (12) 執(zhí)行Options、Cable and I/O Port Setup…命令,設(shè)置Cable為USB接口,因為我們用的是USB ispDOWNLOAD Cables。

        (13) 通過ispVM System軟件主界面的SCAN按鈕找到在線編程器件。

        (14) 右擊所找到的編程器件LC4256V,選擇“Edit Device”,在“Device Information”窗口中選擇Device為 LC4256V(B),通過Browse按鈕選擇已編譯好的JED文件(lc4256.jed),單擊OK按鈕。

        (15) 重新回到ispVM System軟件主界面,點擊GO命令進行下載編程。如圖4所示,在Status窗口中顯示信息“Operation Done:No errors.Operation:Successful”,表示對LC4256V器件的編程已經(jīng)成功。

        圖4 編程成功

        (16) 關(guān)閉教學(xué)計算機電源,拔下下載編程電纜。

        (17) 將教學(xué)機左下方五個黑色的控制開關(guān)撥為00010(1表示往上撥,0表示往下?lián)?,啟動WinPcec16軟件,然后打開教學(xué)機電源,先按RESET鍵,后按START鍵,啟動教學(xué)機監(jiān)控程序。

        (18) 在WinPcec16中編寫一個包含擴展指令MUL的教學(xué)機程序,如圖5所示。其中,MUL指令為我們設(shè)計的擴展指令,教學(xué)機中規(guī)定擴展指令必須用E命令將二進制形式的擴展指令寫入教學(xué)機內(nèi)存。程序中MUL指令的二進制代碼為E812(十六進制形式),E8為MUL指令的操作碼,1、2分別表示R1、R2寄存器編號。該程序?qū)1寄存器內(nèi)容與R2寄存器內(nèi)容相乘,乘積存放在R6寄存器,即10010001×10110101=01100110 10000101(十六進制數(shù)6685),程序運行結(jié)果表明所設(shè)計的擴展指令MUL是正確的。

        圖5 包含擴展指令MUL的教學(xué)機程序的運行結(jié)果

        (19) 在WinPcec16軟件中編寫一個包含擴展指令DIV的教學(xué)機程序,該程序?qū)1寄存器內(nèi)容與R2寄存器內(nèi)容相除,商存放在R9寄存器,即10111100÷11011110=0.11011000(十六進制數(shù)00D8),余數(shù)存放在R1寄存器,余數(shù)補碼為1111111111010010(十六進制數(shù)FFD2),余數(shù)為負,則需通過余數(shù)補碼+除數(shù)補碼恢復(fù)余數(shù),1111111111010010+.0000000011011110=0000000010110000,即余數(shù)為+0.10110000,程序運行結(jié)果表明所設(shè)計的擴展指令DIV是正確的,如圖6所示。擴展指令必須用E命令輸入。

        圖6 包含擴展指令DIV的教學(xué)機程序的運行結(jié)果

        4 結(jié) 語

        目前,國內(nèi)外還沒有研究在TEC-XP16教學(xué)機微程序控制器中擴展較復(fù)雜指令,如乘法指令、除法指令的文獻。為解決TEC-XP16教學(xué)機缺少乘法指令和除法指令的問題,本文對TEC-XP16教學(xué)機微程序控制器中擴展乘法指令與除法指令進行了嘗試,設(shè)計了一種8位無符號數(shù)乘法指令與一種8位無符號數(shù)除法指令。對所設(shè)計和實現(xiàn)的乘法指令與除法指令進行了實驗測試,測試結(jié)果驗證了我們所設(shè)計和實現(xiàn)的乘法指令與除法指令的功能是正確的。目前,已在我校計算機科學(xué)與技術(shù)15級學(xué)生計算機組成原理課中開設(shè)了一些設(shè)計性實驗,如本文提到的在微程序控制器中擴展一些新指令。從學(xué)生的反饋來看,多開設(shè)這種設(shè)計性的實驗,可以使學(xué)生從根本上理解計算機各組成部件的工作原理以及各個組成部件之間的聯(lián)系,使學(xué)生更易形成一個完整的計算機整機概念,有益于提高學(xué)生的設(shè)計能力和創(chuàng)新能力,培養(yǎng)學(xué)生分析問題和解決問題的能力,激發(fā)學(xué)生學(xué)習(xí)的主動性和積極性。下一步將嘗試利用教學(xué)機AM2901運算器芯片中的乘商寄存器實現(xiàn)16位乘法指令與16位除法指令,以及在微程序控制器中擴展補碼乘法與補碼除法等指令。

        猜你喜歡
        表達式寄存器乘法
        算乘法
        我們一起來學(xué)習(xí)“乘法的初步認識”
        《整式的乘法與因式分解》鞏固練習(xí)
        Lite寄存器模型的設(shè)計與實現(xiàn)
        一個混合核Hilbert型積分不等式及其算子范數(shù)表達式
        表達式轉(zhuǎn)換及求值探析
        把加法變成乘法
        淺析C語言運算符及表達式的教學(xué)誤區(qū)
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        議C語言中循環(huán)語句
        商(2012年11期)2012-07-09 19:07:55
        人妻饥渴偷公乱中文字幕| 黄色三级国产在线观看| av天堂亚洲另类色图在线播放| 中文人妻av久久人妻水蜜桃| 波多野结衣乳巨码无在线| 97色偷偷色噜噜狠狠爱网站97| 富婆叫鸭一区二区三区| 偷拍夫妻视频一区二区| 曰韩人妻无码一区二区三区综合部| 国产一区a| 亚洲综合精品一区二区三区| 亚洲视频网站大全免费看| 少妇性饥渴bbbbb搡bbbb| 国产精品九九热| 国产av精品一区二区三区视频| 精品亚洲国产成人蜜臀av| 大香伊蕉国产av| 欧美激情精品久久999| 免费看av网站在线亚洲| 久热re这里精品视频在线6| 久久精品一区二区免费播放| 日本一区二区三区专区| 91精品国产在热久久| 亚洲精品无码久久久久牙蜜区| 国产亚洲AV无码一区二区二三区| 女同重口味一区二区在线| 无码人妻精品中文字幕| 亚洲国产综合精品 在线 一区| 精品视频在线观看一区二区三区| 极品美女调教喷水网站| 免费a级毛片无码av| 午夜亚洲国产理论片亚洲2020| 少妇一区二区三区精选| 亚洲av无码一区东京热| 欧美成人形色生活片| 农村国产毛片一区二区三区女| 少妇人妻综合久久中文字幕| 日韩a无v码在线播放| 中文字幕精品亚洲无线码二区 | 国产激情在线观看免费视频| 中文人妻熟妇乱又伦精品|