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

    一種快速的浮點(diǎn)乘法指令設(shè)計(jì)方法

    2021-07-16 08:12:58宗德才王康康
    關(guān)鍵詞:浮點(diǎn)數(shù)乘法指令

    宗德才 王康康

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

    0 引 言

    目前,國內(nèi)很多高校計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)內(nèi)容主要是基于清華大學(xué)計(jì)算機(jī)系研制的TEC-XP16 教學(xué)計(jì)算機(jī)而開展的。為了使學(xué)生更好地掌握計(jì)算機(jī)的各個(gè)組成部件的工作原理,理解指令的執(zhí)行流程,系統(tǒng)地建立計(jì)算機(jī)整機(jī)概念,迫切需要開發(fā)一些設(shè)計(jì)性實(shí)驗(yàn),如在CPU的控制器中設(shè)計(jì)一些新指令。

    文獻(xiàn)[1]設(shè)計(jì)了一種4位乘法指令和一種8位除4位除法指令,文獻(xiàn)[2]、文獻(xiàn)[3]將EDA 軟件Proteus 應(yīng)用于教學(xué)實(shí)驗(yàn)中,缺點(diǎn)是很難形成對計(jì)算機(jī)硬件的直觀理解,并且都未設(shè)計(jì)浮點(diǎn)乘法等復(fù)雜指令。文獻(xiàn)[4]設(shè)計(jì)了一個(gè)8位模型機(jī),設(shè)計(jì)了14條指令,但未設(shè)計(jì)浮點(diǎn)乘法等復(fù)雜指令。文獻(xiàn)[5]設(shè)計(jì)了加法等指令,但并未設(shè)計(jì)浮點(diǎn)乘法指令等復(fù)雜指令。文獻(xiàn)[6]要求學(xué)生至少設(shè)計(jì)實(shí)現(xiàn)7條指令,但并未要求設(shè)計(jì)浮點(diǎn)乘法等復(fù)雜指令。

    文獻(xiàn)[7]介紹了TH-union 教學(xué)機(jī)微程序控制器的原理及實(shí)驗(yàn)步驟,沒有擴(kuò)展新指令。文獻(xiàn)[8]在TEC-2000教學(xué)機(jī)微程序控制器中設(shè)計(jì)實(shí)現(xiàn)了4條簡單的擴(kuò)展指令。文獻(xiàn)[9]在TEC-2000教學(xué)機(jī)微程序控制器中設(shè)計(jì)實(shí)現(xiàn)了2條簡單的擴(kuò)展指令。文獻(xiàn)[8]和文獻(xiàn)[9]在TEC-2000教學(xué)機(jī)微程序控制器中擴(kuò)展的指令都比較簡單。文獻(xiàn)[10]研究了在TEC-XP16組合邏輯控制器中擴(kuò)展簡單指令的方法。文獻(xiàn)[11]提出一種微程序控制器中8位無符號(hào)乘法指令與8位無符號(hào)除法指令的設(shè)計(jì)方法,均需要二十多條微指令組成的微程序來實(shí)現(xiàn),設(shè)計(jì)好微程序后都采用手工方式修改控制器源程序,其效率低、速度慢且容易出錯(cuò)。

    本文基于TEC-XP16教學(xué)機(jī),提出微程序控制器中32位浮點(diǎn)乘法指令的一種快速的設(shè)計(jì)方法。為解決人工方式將每條匯編指令轉(zhuǎn)換成一條或多條微指令速度慢且容易出錯(cuò)等問題,設(shè)計(jì)了匯編程序表和微程序表,并設(shè)計(jì)了一個(gè)Python程序,能夠根據(jù)匯編程序直接自動(dòng)生成微程序。同時(shí),為解決手工修改控制器ABEL語言源程序速度慢及容易出錯(cuò)等問題,提出一種能夠自動(dòng)修改控制器的ABEL語言源程序的方法。實(shí)驗(yàn)結(jié)果表明,所設(shè)計(jì)的32位浮點(diǎn)乘法指令的功能是正確的,平均只需要1.9 s就能根據(jù)匯編程序表自動(dòng)生成微程序表,平均只需0.7 s就能根據(jù)微程序表、微指令轉(zhuǎn)移判斷條件表和微程序入口地址表自動(dòng)修改并生成控制器ABEL語言源程序,極大提高了浮點(diǎn)乘法指令的設(shè)計(jì)速度。該方法也可推廣到其他復(fù)雜指令的設(shè)計(jì)過程上。

    1 在微程序控制器中設(shè)計(jì)浮點(diǎn)乘法指令

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

    在現(xiàn)有的 TEC-XP16 教學(xué)機(jī)中,微程序控制器只能執(zhí)行29條基本指令。本文在TEC-XP16 教學(xué)機(jī)微程序控制器中設(shè)計(jì)實(shí)現(xiàn)了一種32位浮點(diǎn)數(shù)乘法指令。

    在TEC-XP16教學(xué)機(jī)的微程序控制器中設(shè)計(jì)浮點(diǎn)乘法指令的主要過程如下:

    1) 首先,確定32位浮點(diǎn)乘法指令FMUL的格式和功能,如表1所示。

    表1 FMUL指令的指令格式與功能

    2) 按32位浮點(diǎn)乘法指令的功能和格式,設(shè)計(jì)32位浮點(diǎn)乘法算法,如算法1所示。

    算法132位浮點(diǎn)數(shù)乘法運(yùn)算算法

    被乘數(shù)與乘數(shù)都用32位IEEE 754浮點(diǎn)數(shù)表示,被乘數(shù)存放在R1、R0寄存器,乘數(shù)存放在R3、R2寄存器,乘積為32位IEEE 754浮點(diǎn)數(shù),最后,乘積存放在R1、R0寄存器中。

    (1) 如果R1和R0都是0,即被乘數(shù)近似為0,則結(jié)果近似為0,否則,轉(zhuǎn)步驟(2)。

    (2) 如果R3和R2都是0,即乘數(shù)近似為0,則結(jié)果近似為0,否則,轉(zhuǎn)步驟(3)。

    (3) 取被乘數(shù)階碼部分,并右移一位,保存在R6寄存器中,R6中結(jié)果為 00JJ JJJJ JJ00 0000,其中J表示階碼部分。

    (4) 取乘數(shù)階碼部分,并右移一位,保存在R7寄存器中,R7中結(jié)果為 00JJ JJJJ JJ00 0000。

    (5) 階碼求和:(R6)+(R7)→R6。

    (6) 浮點(diǎn)數(shù)中階碼用移碼表示,移碼是在階碼真值基礎(chǔ)上加127,階碼相加時(shí),127被加了2次,因此,需要把階碼和減去127。即(R6)-(0001 1111 1100 0000)2→R6。

    (7) 將乘積的符號(hào)位保存在R7最高位。

    (8) 取被乘數(shù)的尾數(shù)部分,并恢復(fù)隱藏位,存放在R1、R0寄存器中,R1、R0中結(jié)果為 0000 0000 1WWW WWWW WWWW WWWW WWWW WWWW,其中W表示階碼部分。

    (9) 取得乘數(shù)的尾數(shù)部分,并恢復(fù)隱藏位,存放在R3、R2寄存器,R3、R2中結(jié)果為 0000 0000 1WWW WWWW WWWW WWWW WWWW WWWW。

    (10) 將R9、R8清為0,R9、R8存放部分積。

    (11) 如果R2為0,只需移位8次,則令R15為1,R10為8,將R3內(nèi)容傳送到R2,R3清為0;如果R2為非0,則令R15為0,R10為16。

    (12) 將R2右移一位,R2最低位移入C觸發(fā)器。

    (13) 如果C=1,則 R1//R0 + R9//R82→ R9//R8;如果C=0,則轉(zhuǎn)移到步驟(15)。

    (14) 如果R10不等于1,則執(zhí)行步驟(15);如果R10為1,并且R15為1,則轉(zhuǎn)移到步驟(18)(尾數(shù)最高位為整數(shù)1,所以不需要右移);如果R10為1,且R15為0,則執(zhí)行步驟(15)。

    (15) 將R9//R8//R2聯(lián)合右移一位。

    (16) R10減1。

    (17) 如果R10為0,則執(zhí)行步驟(18),否則轉(zhuǎn)步驟(13)。

    (18) 如果R3為0,則執(zhí)行步驟(19);否則,令R15為1,R10為8,將R3內(nèi)容傳送到R2,R3清為0,轉(zhuǎn)步驟(12)。

    (19) 將R9、R8內(nèi)容分別送到R1、R0,將R2內(nèi)容送到R9。

    (20) 如果R1中尾數(shù)最高位為0,則執(zhí)行步驟(21),否則,執(zhí)行步驟(22)。

    (21) 將R1//R0//R9聯(lián)合右移一位,階碼加1,轉(zhuǎn)步驟(20)。

    (22) 如果R9最高位為1,則R1//R0 +1 → R1//R0,否則,R1//R0不變。

    (23) 如果R1中尾數(shù)最高位的左邊一位為1,則執(zhí)行步驟(24),否則,執(zhí)行步驟(25)。

    (24) 將R1//R0//R9聯(lián)合右移一位,階碼加1。

    (25) 如果R6最高位為1,則為下溢,結(jié)果為0,結(jié)束;如果R6次高位為1,則為上溢,令C=1,結(jié)束;如果R6最高兩位為00,則執(zhí)行步驟(26)。

    (26) R6最高兩位為00表示結(jié)果沒有溢出,令C=0,將R6左移一位,調(diào)整R1寄存器的內(nèi)容,R1最高位即R7最高位,R1次高位開始的8位即R6中階碼部分,R1低7位即高7位尾數(shù)不變,結(jié)束。

    如圖1所示,在IEEE 754格式的32位浮點(diǎn)數(shù)中最高位是數(shù)符,表示浮點(diǎn)數(shù)的正負(fù),階碼用移碼表示,階碼的真值都被加上一個(gè)偏移量,對于32位浮點(diǎn)數(shù)的偏移量為127。

    1位數(shù)符8位階碼7位尾數(shù) 16位尾數(shù)

    在IEEE 754格式浮點(diǎn)數(shù)中尾數(shù)部分通常都是規(guī)格化表示的,即非0的有效位最高位總是1,有效位呈如下形式:1.ffff…fff,在實(shí)際的表示中,對于32位浮點(diǎn)數(shù),這個(gè)整數(shù)位的1被省略,稱為隱藏位。

    TEC-XP16教學(xué)機(jī)中共有16個(gè)16位的通用寄存器R0~R15。32位浮點(diǎn)數(shù)需要用兩個(gè)通用寄存器來表示。

    3) 根據(jù)算法1,用TEC-XP16教學(xué)機(jī)的匯編指令編寫程序?qū)崿F(xiàn)算法1。同時(shí),設(shè)計(jì)數(shù)據(jù)庫表。

    Python語言具有簡單易學(xué)、免費(fèi)開源和可擴(kuò)展移植性好等特性[13],因此,選擇Python語言作為程序設(shè)計(jì)語言。

    如圖2所示,TEC-XP16教學(xué)機(jī)中,一條微指令由16位的下地址字段和32位的控制命令字段共同組成[14]。

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

    根據(jù)TEC-XP16教學(xué)機(jī)微指令的格式,設(shè)計(jì)了微程序表MProgram,如表2所示,用于保存32位浮點(diǎn)數(shù)乘法指令對應(yīng)的由微指令組成的微程序。

    表2 MProgram微程序表

    為了實(shí)現(xiàn)根據(jù)匯編程序自動(dòng)生成微程序這一功能,設(shè)計(jì)了匯編程序表AsblProgram,如表3所示,用于保存根據(jù)32位浮點(diǎn)數(shù)乘法運(yùn)算算法編寫的100條匯編指令組成的匯編程序。

    表3 AsblProgram匯編程序表

    圖2中,命令碼用于控制微指令的執(zhí)行順序,命令碼CI3-CI0為1110時(shí),順序執(zhí)行。命令碼CI3-CI0為0010時(shí),根據(jù)指令的操作碼確定該指令對應(yīng)的微程序的入口地址。設(shè)計(jì)了微程序入口地址表MPFAdr,如表4所示,用于保存32位浮點(diǎn)數(shù)乘法指令對應(yīng)的微程序的第一條微指令的地址。

    表4 MPFAdr微程序入口地址表

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

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

    根據(jù)表5設(shè)計(jì)了CC微指令轉(zhuǎn)移判斷條件表,用于保存微指令轉(zhuǎn)移的條件,如表6所示。

    表6 CC微指令轉(zhuǎn)移判斷條件表

    由于每一條匯編指令轉(zhuǎn)換后的微指令數(shù)目不同,設(shè)計(jì)了ISEA表(如表7所示)用于存儲(chǔ)每一條匯編指令轉(zhuǎn)換成為微指令后,對應(yīng)的第一條微指令地址start和最后一條微指令的地址end。

    表7 ISEA匯編指令微指令地址表

    4) 在匯編程序表AsblProgram中輸入實(shí)現(xiàn)32位浮點(diǎn)數(shù)乘法運(yùn)算算法的匯編程序,共有100條匯編指令,在微程序入口地址表MPFAdr 中輸入FMUL指令的操作碼1110 1100,微程序入口地址為0011 1100。

    5) 根據(jù)算法2和算法3,用Python語言編程(記為程序1),能夠自動(dòng)將AsblProgram表中的匯編程序轉(zhuǎn)換成微程序并寫入MProgram表,根據(jù)算法4為JRZ/JRNZ/JRC/JRNC/JRS/JRNS/JR轉(zhuǎn)移類指令更新其微指令中的下地址字段Nadr,根據(jù)算法5為JRZ/JRNZ/JRC/JRNC/JRS/JRNS指令生成CC表。

    算法2根據(jù)AsblProgram表中的匯編程序生成MProgram表和ISEA表的算法

    (1) 從AsblProgram表中查找所有記錄的最大Number字段值,記為maxNum,令i=1。

    (2) 查找AsblProgram表中Number字段等于i的記錄,記為AsbInsti。

    (3) 如果記錄AsbInsti的Itype為2,即為MVRD指令,則根據(jù)算法3將MVRD Ri,DATA指令轉(zhuǎn)換成微指令并寫入MProgram表,同時(shí)在ISEA表中寫入MVRD指令對應(yīng)的第一條微指令的地址start和最后一條微指令地址end;如果記錄AsbInsti的Itype為1,即為MVRR指令,則只需轉(zhuǎn)換成一條相應(yīng)的微指令并寫入MProgram表,同時(shí)在ISEA表中寫入MVRR指令對應(yīng)的第一條微指令的地址start和最后一條微指令地址end;如果記錄AsbInsti的Iname為OR、AND、ADD、SUB、XOR、TEST、ADC、CMP、SHR、RCR、SHL、INC、DEC、JR、JRZ、JRNZ、JRC、JRNC、JRS、JRNS、CLC、RET指令,則只需要轉(zhuǎn)換成一條相應(yīng)的微指令并寫入MProgram表,同時(shí)在ISEA表中寫入待轉(zhuǎn)換匯編指令對應(yīng)的第一條微指令的地址start和最后一條微指令地址end;如果記錄AsbInsti的Iname為PSHF、POPF指令,則需要轉(zhuǎn)換成兩條相應(yīng)的微指令并寫入MProgram表,同時(shí)在ISEA表中寫入待轉(zhuǎn)換匯編指令對應(yīng)的第一條微指令的地址start和最后一條微指令地址end。

    (4)i=i+1,重復(fù)步驟(2)和步驟(3),直到i>maxNum結(jié)束。

    在本文設(shè)計(jì)的實(shí)現(xiàn)FMUL指令的匯編程序中,用到的MVRD Ri,DATA指令中,DATA值有7F80、1FC0、8000、007F、0010、0001、0008、0040、0080、0100。根據(jù)DATA值的特點(diǎn),設(shè)計(jì)了算法3,算法3的設(shè)計(jì)目標(biāo)是盡量用最少的微指令實(shí)現(xiàn)MVRD指令。

    算法3MVRD Ri,DATA指令轉(zhuǎn)換成微指令算法

    (1) 將DATA轉(zhuǎn)換成16位二進(jìn)制數(shù)a。

    (2) 計(jì)算a中1的位數(shù),記為num_1(a)。

    (3) 如果num_1(a)大于1,則執(zhí)行步驟(4),否則,執(zhí)行步驟(12)。

    (4) MVRD指令的第一條微指令為SUB指令對應(yīng)的微指令,該微指令執(zhí)行后得到 1111 1111 1111 1111。

    (5) 計(jì)算將1111 1111 1111 1111采用先左移后右移的方法得到a的次數(shù),記為shiftlr(a)。

    (6) 計(jì)算將1111 1111 1111 1111采用先右移后左移的方法得到a的次數(shù),記為shiftrl(a)。

    (7) 如果shiftlr(a)小于等于shiftrl(a),則執(zhí)行步驟(8),否則,執(zhí)行步驟(10)。

    (8) 生成16-num_1(a)條SHL指令對應(yīng)的微指令。

    (9) 生成shiftlr(a)+num_1(a)-16條SHR指令對應(yīng)的微指令,結(jié)束。

    (10) 生成16-num_1(a)條SHR指令對應(yīng)的微指令。

    (11) 生成shiftrl(a)+num_1(a)-16條SHL指令對應(yīng)的微指令,結(jié)束。

    (12) 計(jì)算由0000 0000 0000 00001得到a的次數(shù),記為leftshift2(a),則由DATA得到a需要leftshift2(a)+2條微指令。

    (13) 計(jì)算由1111 1111 1111 11111得到a的次數(shù),記為shiftlr(a),則由DATA得到a需要shiftlr(a)+1條微指令。

    (14) 如果leftshift2(a)+2小于等于shiftlr(a)+1,則執(zhí)行步驟(15),否則執(zhí)行步驟(18)。

    (15) 生成SUB指令對應(yīng)的微指令,該微指令執(zhí)行后得到0000 0000 0000 0000。

    (16) 生成INC指令對應(yīng)的微指令,該微指令執(zhí)行后得到0000 0000 0000 0001。

    (17) 生成leftshift2(a)條SHL指令對應(yīng)的微指令,結(jié)束。

    (18) 生成SUB指令對應(yīng)的微指令,該微指令執(zhí)行后得到 1111 1111 1111 1111。

    (19) 生成shiftlr(a)條SHL指令對應(yīng)的微指令,結(jié)束。

    算法4為JRZ/JRNZ/JRC/JRNC/JRS/JRNS/JR轉(zhuǎn)移類指令生成微指令中的下地址字段Nadr算法

    JRZ、JRNZ、JRC、JRNC、JRS、JRNS都只需要轉(zhuǎn)換成一條微指令即可,但是要根據(jù)轉(zhuǎn)移目標(biāo)地址更新Nadr字段值。

    (1) 從AsblProgram表中查找Itype為3或4的所有記錄(JRZ、JRNZ、JRC、JRNC、JRS、JRNS指令的Itype為3,JR指令的Itype為4),假設(shè)查詢結(jié)果有n條記錄,令i=1。

    (2) 根據(jù)查詢結(jié)果中記錄i的Number字段值在ISEA表中查找start字段值,并轉(zhuǎn)換成微指令地址,記為kkk。

    (3) 在AsblProgram表中查找Label字段等于查詢結(jié)果中記錄i的DstAdr字段值的記錄的Number字段值,記為number。

    (4) 在ISEA表中查找Number字段等于number的記錄的start字段值,并轉(zhuǎn)換成8位二進(jìn)制,記為start66。

    (5) 更新MProgram表中MIadr字段等于kkk的記錄的Nadr字段值為start66。

    (6)i=i+1,重復(fù)步驟(2)-步驟(5),直到i>n結(jié)束。

    算法5為JRZ/JRNZ/JRC/JRNC/JRS/JRNS指令生成CC表算法

    (1) 從AsblProgram表中查找Iname為JRZ/JRNZ/JRC/JRNC/JRS/JRNS的所有記錄,假設(shè)查詢結(jié)果有n條記錄,令i=1。

    (2) 在AsblProgram表中查找Label字段等于查詢結(jié)果中記錄i的DstAdr字段值的記錄的Number字段值,記為number。

    (3) 在ISEA表中查找Number字段等于number的記錄的start字段值,并轉(zhuǎn)換成8位二進(jìn)制,記為start66。

    (4) 如果CC表中還沒有Nadr等于start66的記錄,則在CC表中插入一條記錄,否則,轉(zhuǎn)步驟(5)。

    (5)i=i+1,重復(fù)步驟(2)-步驟(4),直到i>n結(jié)束。

    6) 根據(jù)算法6和算法7,用Python語言編程(記為程序2),能夠根據(jù)MPFAdr表以及程序1生成的MProgram表、CC表自動(dòng)生成實(shí)現(xiàn)了32位浮點(diǎn)乘法指令的控制器源文件m256c6.abl。

    算法6自動(dòng)修改并生成微程序控制器源程序的Python語言實(shí)現(xiàn)的算法

    (1) 打開控制器源程序文件m256c.abl,讀取m256c.abl文件的所有行存放在list1列表對象中。

    with open('m256c.abl', 'r') as f1:

    list1 = f1.readlines()

    (2) 連接mpdatabase.db數(shù)據(jù)庫。

    db=sqlite3.connect('mpdatabase.db')

    (3) 從MPFAdr表中讀取所有記錄,將所有記錄的Iname字段值和Opcode字段值組成一個(gè)字符串a(chǎn),字符串a(chǎn)為:FMUL=(IR==[1,1,1,0,1,1,0,0]);在list1列表對象中找到“Expand Instruction here ”字符串,將該字符串替換為字符串a(chǎn)。

    (4) 從CC表中讀取所有記錄,根據(jù)這些記錄的SCC字段值、Iname字段值、Nadr字段值和Condition字段值修改CC0表達(dá)式,如圖3所示,圖3中黑底部分為增加的部分。

    圖3 修改后的CC0表達(dá)式

    (5) 對MPFAdr表中的每一條記錄,根據(jù)MPadr字段值,在list1列表對象中找到D0-D7邏輯表達(dá)式所在的行并進(jìn)行修改,例如,F(xiàn)MUL指令的MPadr字段值為0011 1100,則D2、D3、D4、D5表達(dá)式中需增加FMUL信號(hào);由于m256c.abl文件中D0-D7表達(dá)式出現(xiàn)在CC0表達(dá)式后面,因此,在list列表中查找D0-D7時(shí),可以從CC0表達(dá)式的下一行開始查找,這樣可提高查找速度。

    (6) 根據(jù)算法7,由MProgram表中記錄修改list1列表對象。

    (7) 將list1列表對象寫入一個(gè)新文件m256c6.abl,然后,關(guān)閉該文件。

    算法7根據(jù)MProgram表中記錄修改list1列表對象的算法

    (1) 從MProgram表中讀取所有記錄,假設(shè)有n條記錄。

    (2) 令i=1。

    (3) 根據(jù)記錄i的Nadr字段值,在list1列表對象中找到NADR7-NADR0邏輯表達(dá)式所在的行并進(jìn)行修改。

    (4) 根據(jù)記錄i的Cmd字段值,在list1列表對象中找到CI3-CI0邏輯表達(dá)式所在的行并進(jìn)行修改。

    (5) 根據(jù)記錄i的SCC字段值,在list1列表對象中找到SCC3-SCC0邏輯表達(dá)式所在的行并進(jìn)行修改。

    (6) 根據(jù)記錄i的MRW字段值,在list1列表對象中找到!_MIO00、REQ00、_WE00邏輯表達(dá)式所在的行并進(jìn)行修改。

    (7) 根據(jù)記錄i的I2-I0字段值,在list1列表對象中找到I200、I100、!I000邏輯表達(dá)式所在的行并進(jìn)行修改。

    (8) 根據(jù)記錄i的I5-I3字段值,在list1列表對象中找到I500、I400、I300邏輯表達(dá)式所在的行并進(jìn)行修改。

    (9) 根據(jù)記錄i的I8-I6字段值,在list1列表對象中找到I800、I700、!I600邏輯表達(dá)式所在的行并進(jìn)行修改。

    (10) 根據(jù)記錄i的SST字段值,在list1列表對象中找到SST200、SST100、SST000邏輯表達(dá)式所在的行并進(jìn)行修改。

    (11) 根據(jù)記錄i的SSHSCI字段值,在list1列表對象中找到SSH00、SCI100、SCI000邏輯表達(dá)式所在的行并進(jìn)行修改。

    (12) 根據(jù)記錄i的DC2字段值,在list1列表對象中找到DC2_200、DC2_100、DC2_000邏輯表達(dá)式所在的行并進(jìn)行修改。

    (13) 根據(jù)記錄i的DC1字段值,在list1列表對象中找到DC1_200、DC1_100、DC1_000邏輯表達(dá)式所在的行并進(jìn)行修改。

    (14) 如果記錄i的Bp字段值為“DR”,則list1列表對象的B30表達(dá)式增加當(dāng)前記錄的MIadr字段值;如果記錄i的Bp字段值為“SR”,則list1列表對象的B301表達(dá)式增加當(dāng)前記錄的MIadr字段值;如果記錄i的Bp字段值為數(shù)字字符,則修改list1列表對象的B300、B20、B10、B00邏輯表達(dá)式的值。

    (15) 如果記錄i的Ap字段值為“DR”,則list1列表對象的A301表達(dá)式增加當(dāng)前記錄的MIadr字段值;如果記錄i的Ap字段值為“SR”,則list1列表對象的A30表達(dá)式增加當(dāng)前記錄的MIadr字段值;如果記錄i的Ap字段值為數(shù)字字符,則修改list1列表對象的A300、A20、A10、A00邏輯表達(dá)式的值。

    (16)i=i+1,若i≤n,則轉(zhuǎn)到步驟(3),否則,結(jié)束。

    2 實(shí) 驗(yàn)

    按照上述方法在Access 2010中設(shè)計(jì)好數(shù)據(jù)庫表后,為了方便Python語言編程,使用SQLite Expert工具將Access數(shù)據(jù)庫轉(zhuǎn)換成SQLite數(shù)據(jù)庫。

    用Python語言編寫兩個(gè)程序,程序1能夠自動(dòng)將AsblProgram表中的匯編程序轉(zhuǎn)換成微程序并寫入MProgram表、CC表和ISEA表;程序2能根據(jù)MPFAdr表和程序1生成的MProgram、CC表中的內(nèi)容自動(dòng)修改微程序控制器源程序文件,根據(jù)MPFAdr表在控制器源程序中自動(dòng)添加擴(kuò)展指令的操作碼與匯編語句的關(guān)系表達(dá)式以及自動(dòng)添加擴(kuò)展指令的微程序入口地址,根據(jù)CC表在控制器源程序中CC信號(hào)的邏輯表達(dá)式中自動(dòng)添加擴(kuò)展指令的條件微指令轉(zhuǎn)移所依據(jù)的判斷條件,根據(jù)MProgram表在控制器源程序中16位下地址字段與32位控制信號(hào)的邏輯表達(dá)式中自動(dòng)添加相應(yīng)的微指令地址。先后運(yùn)行這兩個(gè)程序后,會(huì)自動(dòng)生成一個(gè)名為m256c6.abl的包括了FMUL指令的控制器源程序文件。

    將能夠自動(dòng)把AsblProgram表中的匯編程序轉(zhuǎn)換成微程序并寫入MProgram表、CC表和ISEA表的程序1運(yùn)行50次,結(jié)果如圖4所示,最快只需1.8 s,平均需要1.945 s;將能根據(jù)MPFAdr表和程序1生成的MProgram、CC表中的內(nèi)容自動(dòng)修改微程序控制器源程序文件的程序2運(yùn)行50次,結(jié)果如圖5所示,最快只需0.67 s,平均需要0.71 s。

    圖4 由AsblProgram表自動(dòng)生成MProgram表的時(shí)間

    圖5 由MProgram表、CC表等自動(dòng)產(chǎn)生abl文件的時(shí)間

    在TEC-XP16教學(xué)機(jī)微程序控制器中擴(kuò)展FMUL指令的完整過程如下:

    (1) 在Access 2010數(shù)據(jù)庫中創(chuàng)建AsblProgram匯編程序表、MProgram微程序表、CC微指令轉(zhuǎn)移判斷條件表、MPFAdr微程序入口地址表和匯編指令微指令地址表ISEA,并且在AsblProgram表輸入實(shí)現(xiàn)32位浮點(diǎn)乘法指令FUML的100條匯編指令,在MPFAdr表中輸入FMUL指令對應(yīng)的微程序入口地址0011 1100。

    (2) 使用SQLite Expert工具將Access數(shù)據(jù)庫轉(zhuǎn)換成SQLite數(shù)據(jù)庫。

    (3) 用Python語言編寫程序1,該程序能從SQLite數(shù)據(jù)庫自動(dòng)讀取AsblProgram表中的匯編指令并自動(dòng)生成微程序、微指令轉(zhuǎn)移條件、每條匯編指令的微指令起始地址并分別寫入MProgram表、CC表和ISEA表。

    (4) 用Python語言編寫程序2,該程序能從SQLite3數(shù)據(jù)庫自動(dòng)讀取并根據(jù)MProgram表、CC表和MPFAdr表中的內(nèi)容自動(dòng)修改m256c.abl文件并生成一個(gè)新的微程序控制器源程序文件。

    (5) 先后運(yùn)行程序1和程序2,會(huì)自動(dòng)生成一個(gè)名為m256c6.abl的實(shí)現(xiàn)了FMUL指令的控制器源程序文件。

    (6) 將m256c6.abl文件重命名為m256c.abl。

    (7) 啟動(dòng)Lattice ispLEVER Classic Project Navigator軟件,新建一個(gè)名為lc4256的項(xiàng)目文件,將m256c.abl添加到項(xiàng)目中,然后,將m256c.abl編譯后生成名為lc4256.jed的文件,將lc4256.jed下載到教學(xué)機(jī)MACH芯片中。方法詳見文獻(xiàn)[11]。

    (8) 啟動(dòng)WinPcec16軟件,然后啟動(dòng)教學(xué)機(jī)監(jiān)控程序。

    (9) 在WinPcec16軟件中編寫一個(gè)實(shí)現(xiàn)2個(gè)32位浮點(diǎn)數(shù)乘法的教學(xué)機(jī)程序,如圖6-圖7所示,教學(xué)機(jī)中規(guī)定擴(kuò)展指令必須用E命令寫入教學(xué)機(jī)內(nèi)存,F(xiàn)MUL指令的二進(jìn)制代碼為EC00(十六進(jìn)制形式),EC為FMUL指令的操作碼,被乘數(shù)存放在R1、R0寄存器中,乘數(shù)存放在R3、R2寄存器中,乘積保存在R1、R0寄存器中。

    圖6中,被乘數(shù)和乘數(shù)都是0100 0000 0000 0000 0000 0000 0000 0000,即1.0×21,乘積為0100 0000 1000 0000 0000 0000 0000 0000,即1.0×22,程序運(yùn)行結(jié)果驗(yàn)證了本文所設(shè)計(jì)和實(shí)現(xiàn)的32位浮點(diǎn)乘法指令的功能是正確的。

    圖7中,被乘數(shù)和乘數(shù)都是0100 0000 0001 0000 0000 0000 0000 0000,即1.001×21,乘積為0100 0000 1010 0010 0000 0000 0000 0000,即1.010 001×22,程序運(yùn)行結(jié)果驗(yàn)證了本文所設(shè)計(jì)和實(shí)現(xiàn)的32位浮點(diǎn)乘法指令的功能是正確的。

    3 結(jié) 語

    目前國內(nèi)外還沒有研究在TEC-XP16教學(xué)機(jī)的微程序控制器中擴(kuò)展較復(fù)雜指令,如32位浮點(diǎn)數(shù)乘法指令的文獻(xiàn)。本文對TEC-XP16 教學(xué)機(jī)微程序控制器中擴(kuò)展32位浮點(diǎn)數(shù)乘法指令進(jìn)行了嘗試,設(shè)計(jì)一種32位IEEE 754浮點(diǎn)數(shù)乘法指令,測試結(jié)果表明,采用本文方法在TEC-XP16教學(xué)機(jī)上設(shè)計(jì)的32位浮點(diǎn)數(shù)乘法指令的功能是正確的。

    為解決原來采用人工方式將TEC-XP16教學(xué)機(jī)匯編程序轉(zhuǎn)換成微程序速度慢、效率低且容易出錯(cuò)等問題,設(shè)計(jì)匯編程序表和微程序表,并設(shè)計(jì)一個(gè)Python程序,能夠根據(jù)匯編程序直接自動(dòng)生成微程序。同時(shí),為解決手工修改控制器源程序速度慢及容易出錯(cuò)等問題,提出一種能夠根據(jù)微程序自動(dòng)修改微程序控制器源程序的方法。實(shí)驗(yàn)結(jié)果表明,所設(shè)計(jì)的32位浮點(diǎn)乘法指令的功能是正確的,平均只需要1.9 s就能根據(jù)匯編程序表自動(dòng)生成微程序表,平均只需0.7 s就能根據(jù)微程序表、微指令轉(zhuǎn)移判斷條件表和微程序入口地址表自動(dòng)修改并生成控制器ABEL語言源程序,極大提高了32位浮點(diǎn)乘法指令的設(shè)計(jì)速度。本文方法也可推廣到其他復(fù)雜指令的設(shè)計(jì)上。

    下一步將嘗試在TEC-XP16教學(xué)機(jī)微程序控制器中設(shè)計(jì)32位浮點(diǎn)數(shù)除法指令等復(fù)雜指令,以及進(jìn)一步研究在TEC-XP16教學(xué)機(jī)組合邏輯控制器中設(shè)計(jì)復(fù)雜指令的方法。

    猜你喜歡
    浮點(diǎn)數(shù)乘法指令
    聽我指令:大催眠術(shù)
    算乘法
    我們一起來學(xué)習(xí)“乘法的初步認(rèn)識(shí)”
    四種Python均勻浮點(diǎn)數(shù)生成方法
    《整式的乘法與因式分解》鞏固練習(xí)
    把加法變成乘法
    ARINC661顯控指令快速驗(yàn)證方法
    LED照明產(chǎn)品歐盟ErP指令要求解讀
    電子測試(2018年18期)2018-11-14 02:30:34
    在C語言中雙精度浮點(diǎn)數(shù)線性化相等比較的研究
    非精確浮點(diǎn)數(shù)乘法器設(shè)計(jì)
    国产黄色小视频在线观看| 在线观看免费视频日本深夜| 亚洲人成伊人成综合网2020| 欧美在线一区亚洲| 国产精品久久久av美女十八| netflix在线观看网站| 婷婷丁香在线五月| 午夜福利视频1000在线观看| 久久香蕉国产精品| 最好的美女福利视频网| 好看av亚洲va欧美ⅴa在| 久久精品国产亚洲av高清一级| 男女之事视频高清在线观看| 久久婷婷人人爽人人干人人爱| 欧美一区二区精品小视频在线| 久热爱精品视频在线9| 免费在线观看日本一区| 精品无人区乱码1区二区| 欧美zozozo另类| 亚洲精品美女久久av网站| 此物有八面人人有两片| 变态另类成人亚洲欧美熟女| 看免费av毛片| 国产单亲对白刺激| 男女视频在线观看网站免费 | 哪里可以看免费的av片| 18禁观看日本| 成人高潮视频无遮挡免费网站| 夜夜躁狠狠躁天天躁| xxxwww97欧美| 久久精品91无色码中文字幕| 国产午夜精品久久久久久| 美女午夜性视频免费| 日本 av在线| 久久精品国产亚洲av香蕉五月| 久久精品人妻少妇| 老司机在亚洲福利影院| 波多野结衣巨乳人妻| 成人18禁在线播放| 99久久国产精品久久久| 久久天躁狠狠躁夜夜2o2o| 久久久久久国产a免费观看| 黄色女人牲交| 午夜福利在线在线| 精品不卡国产一区二区三区| 亚洲av中文字字幕乱码综合| 欧美中文综合在线视频| x7x7x7水蜜桃| 国产成人aa在线观看| 国内毛片毛片毛片毛片毛片| 亚洲中文av在线| 十八禁网站免费在线| 国产精品久久久久久精品电影| 少妇粗大呻吟视频| 国产精品1区2区在线观看.| 99久久99久久久精品蜜桃| www.熟女人妻精品国产| 热99re8久久精品国产| 又大又爽又粗| 欧美日韩亚洲综合一区二区三区_| АⅤ资源中文在线天堂| 国产一区二区三区视频了| 亚洲avbb在线观看| xxxwww97欧美| 一进一出抽搐动态| 色播亚洲综合网| 99国产综合亚洲精品| 长腿黑丝高跟| 日韩 欧美 亚洲 中文字幕| 三级国产精品欧美在线观看 | 91老司机精品| 法律面前人人平等表现在哪些方面| 别揉我奶头~嗯~啊~动态视频| 日韩大码丰满熟妇| 久久午夜亚洲精品久久| 一级片免费观看大全| 大型av网站在线播放| 亚洲国产欧美一区二区综合| 日日干狠狠操夜夜爽| 一个人观看的视频www高清免费观看 | 午夜福利成人在线免费观看| 久久久久久亚洲精品国产蜜桃av| av福利片在线| 国产亚洲av嫩草精品影院| av视频在线观看入口| 亚洲av日韩精品久久久久久密| 免费在线观看完整版高清| 18禁黄网站禁片免费观看直播| 波多野结衣高清无吗| 亚洲人成网站在线播放欧美日韩| 天天一区二区日本电影三级| 亚洲成av人片在线播放无| 亚洲欧美日韩高清在线视频| 国产av一区在线观看免费| 又爽又黄无遮挡网站| 久久久久性生活片| 最近在线观看免费完整版| 亚洲精品久久国产高清桃花| 一夜夜www| 亚洲人成77777在线视频| 中文字幕人妻丝袜一区二区| 日本 av在线| 国产一区在线观看成人免费| 午夜福利在线在线| 久久久久久人人人人人| 黑人巨大精品欧美一区二区mp4| 50天的宝宝边吃奶边哭怎么回事| 国产久久久一区二区三区| 国产v大片淫在线免费观看| 国产三级中文精品| 国产乱人伦免费视频| 757午夜福利合集在线观看| 欧美 亚洲 国产 日韩一| 欧美乱色亚洲激情| 国产午夜精品论理片| 精品第一国产精品| svipshipincom国产片| 欧美国产日韩亚洲一区| 精品高清国产在线一区| 熟妇人妻久久中文字幕3abv| 亚洲午夜精品一区,二区,三区| 久久久久国产精品人妻aⅴ院| 亚洲最大成人中文| 在线十欧美十亚洲十日本专区| 欧美日韩瑟瑟在线播放| 小说图片视频综合网站| 亚洲色图av天堂| 国语自产精品视频在线第100页| 日本熟妇午夜| 亚洲欧美日韩东京热| 日韩精品中文字幕看吧| 757午夜福利合集在线观看| 欧美乱色亚洲激情| 两性午夜刺激爽爽歪歪视频在线观看 | 最新美女视频免费是黄的| 久久伊人香网站| 国产av一区在线观看免费| 亚洲第一电影网av| 国产人伦9x9x在线观看| 国产av一区在线观看免费| 伦理电影免费视频| 欧美国产日韩亚洲一区| 国产av一区在线观看免费| 久久午夜综合久久蜜桃| 制服人妻中文乱码| 在线播放国产精品三级| 一本精品99久久精品77| 精品一区二区三区av网在线观看| 特级一级黄色大片| 成人国产综合亚洲| 亚洲第一电影网av| 久久精品国产99精品国产亚洲性色| 搡老妇女老女人老熟妇| 国产成人精品久久二区二区91| 国产成人精品无人区| 国产亚洲精品久久久久5区| а√天堂www在线а√下载| 国产成人精品无人区| 日韩高清综合在线| 后天国语完整版免费观看| 亚洲色图 男人天堂 中文字幕| 国产亚洲av嫩草精品影院| 欧美日韩福利视频一区二区| 老司机福利观看| 最新美女视频免费是黄的| 久久久精品大字幕| 国产亚洲精品综合一区在线观看 | av在线播放免费不卡| 精华霜和精华液先用哪个| 18禁黄网站禁片免费观看直播| 波多野结衣高清作品| 亚洲人成77777在线视频| 久久人妻福利社区极品人妻图片| 国产黄色小视频在线观看| cao死你这个sao货| 一边摸一边抽搐一进一小说| 久久午夜亚洲精品久久| 日本一区二区免费在线视频| 性欧美人与动物交配| 99久久综合精品五月天人人| 日韩欧美国产在线观看| 国产成人av激情在线播放| 亚洲午夜理论影院| 黑人操中国人逼视频| 国产精品98久久久久久宅男小说| 国产午夜福利久久久久久| 人人妻人人澡欧美一区二区| 男人舔女人下体高潮全视频| 两个人免费观看高清视频| 深夜精品福利| 亚洲精品色激情综合| 亚洲熟妇熟女久久| 欧美性猛交╳xxx乱大交人| 国产高清有码在线观看视频 | 热99re8久久精品国产| 成人国语在线视频| 久久人妻av系列| 人人妻人人看人人澡| 一本综合久久免费| 精品一区二区三区视频在线观看免费| 国产一区二区在线观看日韩 | 精品免费久久久久久久清纯| 日本 欧美在线| 好男人在线观看高清免费视频| 久久久精品国产亚洲av高清涩受| 首页视频小说图片口味搜索| 精品一区二区三区av网在线观看| 免费在线观看日本一区| 窝窝影院91人妻| 成人永久免费在线观看视频| 亚洲精品在线美女| 草草在线视频免费看| 亚洲国产欧洲综合997久久,| 国产一区二区三区在线臀色熟女| 99国产精品一区二区蜜桃av| 中国美女看黄片| 麻豆国产av国片精品| 99久久国产精品久久久| 精品午夜福利视频在线观看一区| 在线国产一区二区在线| 夜夜看夜夜爽夜夜摸| 男女下面进入的视频免费午夜| 岛国视频午夜一区免费看| 琪琪午夜伦伦电影理论片6080| 亚洲狠狠婷婷综合久久图片| 中国美女看黄片| 一进一出抽搐动态| 亚洲avbb在线观看| 日日爽夜夜爽网站| 亚洲最大成人中文| 欧美一区二区精品小视频在线| 丁香欧美五月| 91麻豆精品激情在线观看国产| 免费高清视频大片| 2021天堂中文幕一二区在线观| 久久精品夜夜夜夜夜久久蜜豆 | 日日干狠狠操夜夜爽| 久久九九热精品免费| 中文在线观看免费www的网站 | 黄色视频,在线免费观看| 51午夜福利影视在线观看| 国产av又大| 日本在线视频免费播放| 日韩国内少妇激情av| 日本五十路高清| 亚洲七黄色美女视频| x7x7x7水蜜桃| 床上黄色一级片| 亚洲美女视频黄频| 美女大奶头视频| 日韩成人在线观看一区二区三区| 久久人人精品亚洲av| 深夜精品福利| 黄频高清免费视频| tocl精华| 精品日产1卡2卡| 国产激情偷乱视频一区二区| 757午夜福利合集在线观看| 午夜视频精品福利| avwww免费| 亚洲狠狠婷婷综合久久图片| 又大又爽又粗| 欧美中文日本在线观看视频| 99热这里只有是精品50| 久久久久免费精品人妻一区二区| 亚洲熟女毛片儿| 亚洲欧美日韩无卡精品| 一二三四社区在线视频社区8| 18禁美女被吸乳视频| 别揉我奶头~嗯~啊~动态视频| 欧美日韩亚洲国产一区二区在线观看| 天堂av国产一区二区熟女人妻 | 一进一出抽搐gif免费好疼| 午夜a级毛片| or卡值多少钱| 国产精华一区二区三区| 精品午夜福利视频在线观看一区| 日日夜夜操网爽| 一二三四在线观看免费中文在| 伊人久久大香线蕉亚洲五| 1024香蕉在线观看| 日本a在线网址| 国内精品久久久久久久电影| 日本一本二区三区精品| 国内精品一区二区在线观看| 91字幕亚洲| 国产91精品成人一区二区三区| 欧美日韩乱码在线| 可以在线观看的亚洲视频| 国产高清videossex| 亚洲国产精品合色在线| 精品人妻1区二区| 五月玫瑰六月丁香| 欧美黑人巨大hd| 久久久久国产一级毛片高清牌| 国产精品野战在线观看| 亚洲熟女毛片儿| 97人妻精品一区二区三区麻豆| 国产精品自产拍在线观看55亚洲| 一本久久中文字幕| 91麻豆av在线| netflix在线观看网站| 老司机靠b影院| 午夜免费观看网址| 亚洲av第一区精品v没综合| 狂野欧美白嫩少妇大欣赏| 亚洲人成网站高清观看| 婷婷精品国产亚洲av| 搡老岳熟女国产| 听说在线观看完整版免费高清| 麻豆国产av国片精品| 天堂影院成人在线观看| 亚洲国产精品合色在线| 久久国产乱子伦精品免费另类| av有码第一页| 给我免费播放毛片高清在线观看| 特大巨黑吊av在线直播| 91九色精品人成在线观看| 色哟哟哟哟哟哟| 国产精品久久久人人做人人爽| 制服丝袜大香蕉在线| 午夜激情福利司机影院| 啦啦啦韩国在线观看视频| 国语自产精品视频在线第100页| 久久久国产欧美日韩av| 久久精品影院6| 日本一二三区视频观看| 欧美日韩亚洲国产一区二区在线观看| 欧美日本视频| 美女免费视频网站| 狠狠狠狠99中文字幕| 美女 人体艺术 gogo| 久久伊人香网站| 不卡av一区二区三区| 村上凉子中文字幕在线| 哪里可以看免费的av片| 18禁裸乳无遮挡免费网站照片| 成年女人毛片免费观看观看9| 看黄色毛片网站| 日韩欧美 国产精品| 亚洲av美国av| 久久天躁狠狠躁夜夜2o2o| 亚洲av电影不卡..在线观看| 韩国av一区二区三区四区| 999精品在线视频| 日韩欧美一区二区三区在线观看| 国产精品久久久久久人妻精品电影| 国产区一区二久久| 99国产精品99久久久久| 大型黄色视频在线免费观看| 亚洲av日韩精品久久久久久密| 国产成人一区二区三区免费视频网站| 黄色毛片三级朝国网站| 国产一级毛片七仙女欲春2| 91麻豆精品激情在线观看国产| 69av精品久久久久久| 亚洲avbb在线观看| 老司机在亚洲福利影院| 色综合亚洲欧美另类图片| 精品久久久久久久末码| 国产精品 欧美亚洲| 午夜激情av网站| 国产又色又爽无遮挡免费看| 男女做爰动态图高潮gif福利片| 亚洲专区国产一区二区| 国产主播在线观看一区二区| 99久久无色码亚洲精品果冻| 黄色丝袜av网址大全| 熟女电影av网| 国产精品日韩av在线免费观看| 免费在线观看亚洲国产| 国产精品乱码一区二三区的特点| 国产精品免费视频内射| av欧美777| 日韩大码丰满熟妇| 久久久精品大字幕| 日韩欧美 国产精品| 一个人免费在线观看的高清视频| 国产日本99.免费观看| 欧美性长视频在线观看| 一a级毛片在线观看| 一个人观看的视频www高清免费观看 | 国产精品乱码一区二三区的特点| www日本黄色视频网| 99国产精品一区二区蜜桃av| 欧美成人免费av一区二区三区| 婷婷精品国产亚洲av| 男女床上黄色一级片免费看| 在线观看日韩欧美| 国产激情偷乱视频一区二区| 大型黄色视频在线免费观看| 亚洲人成77777在线视频| 国产亚洲欧美98| 国产精品乱码一区二三区的特点| 久久婷婷人人爽人人干人人爱| 国产av又大| 日日摸夜夜添夜夜添小说| 久久欧美精品欧美久久欧美| 亚洲七黄色美女视频| 国内久久婷婷六月综合欲色啪| 成人特级黄色片久久久久久久| 免费高清视频大片| 欧美日韩一级在线毛片| 免费一级毛片在线播放高清视频| 亚洲国产精品999在线| 18美女黄网站色大片免费观看| 国产探花在线观看一区二区| 午夜福利在线在线| 我要搜黄色片| 亚洲在线自拍视频| 91字幕亚洲| 狠狠狠狠99中文字幕| 午夜激情福利司机影院| 中文字幕高清在线视频| 搡老岳熟女国产| 最近最新免费中文字幕在线| 欧美乱码精品一区二区三区| 国产又色又爽无遮挡免费看| 黄色片一级片一级黄色片| 免费在线观看视频国产中文字幕亚洲| avwww免费| 午夜精品在线福利| 免费一级毛片在线播放高清视频| 久久国产乱子伦精品免费另类| 亚洲精华国产精华精| 丁香六月欧美| 男女下面进入的视频免费午夜| 成人av在线播放网站| 老熟妇乱子伦视频在线观看| 免费高清视频大片| 欧美3d第一页| 中文亚洲av片在线观看爽| 欧美一区二区国产精品久久精品 | 91老司机精品| 神马国产精品三级电影在线观看 | 制服丝袜大香蕉在线| 我要搜黄色片| 窝窝影院91人妻| 色在线成人网| www.www免费av| 色综合婷婷激情| 国产主播在线观看一区二区| 欧美成人午夜精品| 波多野结衣高清作品| aaaaa片日本免费| 婷婷精品国产亚洲av| 哪里可以看免费的av片| 久久精品国产99精品国产亚洲性色| 婷婷精品国产亚洲av| 19禁男女啪啪无遮挡网站| 成年女人毛片免费观看观看9| 久久久久久免费高清国产稀缺| 99国产综合亚洲精品| 高清在线国产一区| 18禁观看日本| 亚洲aⅴ乱码一区二区在线播放 | 色在线成人网| a在线观看视频网站| 黑人操中国人逼视频| 国产精品av视频在线免费观看| 给我免费播放毛片高清在线观看| 国产亚洲精品综合一区在线观看 | 最新在线观看一区二区三区| 变态另类成人亚洲欧美熟女| 视频区欧美日本亚洲| 蜜桃久久精品国产亚洲av| 悠悠久久av| 欧美在线一区亚洲| 亚洲 欧美一区二区三区| 美女大奶头视频| 亚洲色图 男人天堂 中文字幕| 国产成+人综合+亚洲专区| 国产91精品成人一区二区三区| x7x7x7水蜜桃| 国产视频一区二区在线看| 国产一区二区三区在线臀色熟女| 丰满人妻熟妇乱又伦精品不卡| 日本免费一区二区三区高清不卡| 黑人巨大精品欧美一区二区mp4| 国产高清视频在线观看网站| www国产在线视频色| 国产一区二区三区视频了| 一夜夜www| 一级毛片精品| av欧美777| 精品无人区乱码1区二区| 精品少妇一区二区三区视频日本电影| 91成年电影在线观看| 欧美大码av| 欧美日本亚洲视频在线播放| 91国产中文字幕| 不卡av一区二区三区| 黄色视频不卡| 精品久久蜜臀av无| 日韩欧美 国产精品| 久久天躁狠狠躁夜夜2o2o| 好看av亚洲va欧美ⅴa在| www.999成人在线观看| 人妻久久中文字幕网| 97碰自拍视频| 午夜免费激情av| 国产精品一区二区精品视频观看| 免费观看人在逋| 日日夜夜操网爽| 国产私拍福利视频在线观看| 国产成人欧美在线观看| 国内少妇人妻偷人精品xxx网站 | 免费电影在线观看免费观看| 两人在一起打扑克的视频| 中文亚洲av片在线观看爽| 午夜亚洲福利在线播放| 中文字幕久久专区| 一区福利在线观看| 午夜激情福利司机影院| 在线观看www视频免费| av在线天堂中文字幕| 久久热在线av| 午夜a级毛片| 欧美黄色淫秽网站| 免费在线观看影片大全网站| 亚洲黑人精品在线| 亚洲成av人片在线播放无| 黄色女人牲交| 亚洲一区高清亚洲精品| 日韩欧美 国产精品| 一边摸一边抽搐一进一小说| 无限看片的www在线观看| 19禁男女啪啪无遮挡网站| 国产人伦9x9x在线观看| 一级a爱片免费观看的视频| 在线观看日韩欧美| 亚洲专区国产一区二区| 大型av网站在线播放| 在线观看舔阴道视频| 哪里可以看免费的av片| 亚洲国产精品久久男人天堂| 久久久国产欧美日韩av| 久久香蕉激情| 久久久久久免费高清国产稀缺| 最近最新中文字幕大全免费视频| 男男h啪啪无遮挡| 变态另类丝袜制服| 国产高清videossex| 国产高清激情床上av| 精品日产1卡2卡| 男女午夜视频在线观看| 美女 人体艺术 gogo| 久久久久久人人人人人| 久久久久九九精品影院| 在线观看66精品国产| 99国产精品一区二区蜜桃av| 国产成+人综合+亚洲专区| 国产亚洲欧美在线一区二区| 人妻丰满熟妇av一区二区三区| 亚洲,欧美精品.| 天堂影院成人在线观看| 国产免费av片在线观看野外av| 99久久综合精品五月天人人| 亚洲 国产 在线| av福利片在线| 一区二区三区高清视频在线| 日本 欧美在线| 搞女人的毛片| 欧美性猛交╳xxx乱大交人| 女人爽到高潮嗷嗷叫在线视频| 一个人免费在线观看的高清视频| 麻豆一二三区av精品| 国产精品九九99| 久久 成人 亚洲| 亚洲精品国产精品久久久不卡| 可以在线观看毛片的网站| 国产午夜精品久久久久久| 精品久久久久久久人妻蜜臀av| 亚洲18禁久久av| 两个人看的免费小视频| 他把我摸到了高潮在线观看| 国产片内射在线| 国产精品久久久人人做人人爽| 欧美国产日韩亚洲一区| 黄色女人牲交| 亚洲欧洲精品一区二区精品久久久| 在线永久观看黄色视频| 精品久久久久久久久久免费视频| 免费在线观看完整版高清| 精品第一国产精品| 国产成年人精品一区二区| 亚洲av成人精品一区久久| 男女床上黄色一级片免费看| 久久久精品大字幕| 久久精品影院6| 欧美最黄视频在线播放免费| 99在线人妻在线中文字幕| 成人欧美大片| 久久久国产精品麻豆| 亚洲午夜理论影院| 国产精品自产拍在线观看55亚洲| 91在线观看av| 国产精品av久久久久免费| 久久精品亚洲精品国产色婷小说| 午夜亚洲福利在线播放| 成人高潮视频无遮挡免费网站| 亚洲黑人精品在线| 亚洲国产高清在线一区二区三| tocl精华| 91字幕亚洲| 久久草成人影院| av欧美777| 久久久久精品国产欧美久久久| 国产91精品成人一区二区三区| 黑人欧美特级aaaaaa片| 一二三四社区在线视频社区8| 窝窝影院91人妻| 国产精品爽爽va在线观看网站| 欧美日本视频| 精品免费久久久久久久清纯|