日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > ASM > 正文

匯編語言學習筆記(十二)-浮點指令

2019-11-11 02:26:29
字體:
來源:轉載
供稿:網友
浮點數如何存儲浮點寄存器浮點數指令浮點計算例子浮點高級運算CMOV移動指令

浮點數如何存儲

浮點數的運算完全不同于整數,從寄存器到指令,都有一套獨特的處理流程,浮點單元也稱作x87 FPU。

現在看浮點數的表示方式,我們所知道的,計算機使用二進制存儲數據,所表示的數字都具有確定性,那是如何表示浮點這種具有近似效果的數據呢,答案是通過科學計數,科學計數由符號,尾數和指數表示,這三部分都是一個整數值,具體來看一下IEEE二進制浮點標準:

格式說明
單精度32位:符號占1位,指數占8位,尾數中的小數部分占23位
雙精度64位:符號占1位,指數占11位,尾數中的小數部分占52位
擴展精度80位:符號占1位,指數占16位,尾數中的小數部分占63位

以單精度為例,在內存中的儲存格式如下(左邊為高位):

	| 1位符號 | 8位指數 | 23位尾數 |

其中符號位1表示負數,0表示正數,這與整數形式的符號位意義相同; 科學計數法表示形式如 m * (b ^ e),m為尾數,b為基數,e是指數,再二進制中,基數毫無疑問是2,對單精度,指數為中間8位二進制表示的數字,其中的尾數是形如1.1101 小數點后面的整數值。

關于指數,由于需要表示正負兩種數據,IEEE標準規定單精度指數以127為分割線,實際存儲的數據是指數加127所得結果,127為高位為零,后7位為1所得,其他雙精度也以此方式計算。

為了解釋內存中浮點數的存儲方式,舉一個浮點數的例子說明:

float test = 123.456;int main(){    return 0;}

例子再簡單不過了,僅僅定義了一個全局的float類型,我們通過gcc -S test.c來生成匯編,看看123.456是如何存儲的,打開反匯編后的文件,看到符號_test后定義的數字是 1123477881(這里gcc定義成了long類型,不過沒有關系,因為都是四字節數字,具體的類型還得看如何使用)。可以使用計算器把十進制數字轉化為二進制:0 10000101 11101101110100101111001,這里根據單精度的劃分方式把32位劃分成三部分,符號位為0,為正數,指數為 133,減去127得6,尾數加上1.,形式為1.11101101110100101111001,擴大2 ^ 23次方為111101101110100101111001,十進制16181625,后除以2 ^ (23 – 6) = 131072,結果為123.45600128173828125,與我們所定義的浮點數正好相符。

浮點寄存器

這里介紹了浮點數的二進制表示,前面說過浮點單元計算使用獨立的寄存器,在寄存器那篇也稍有提及,這里詳細說明一下浮點單元的寄存器設施。

FPU有 8 個獨立尋址的80位寄存器,名稱分別為r0, r1, …, r7,他們以堆棧形式組織在一起,統稱為寄存器棧,編寫浮點指令時棧頂也寫為st(0),最后一個寄存器寫作st(7)。

FPU另有3個16位的寄存器,分別為控制寄存器、狀態寄存器、標記寄存器,現一一詳細說明此三個寄存器的作用:

狀態寄存器,為用戶記錄浮點計算過程中的狀態,其中各位的含義如下:

0 —— 非法操作異常1 —— 非規格化操作數異常2 —— 除數為0異常3 —— 溢出標志異常4 —— 下溢標志異常5 —— 精度異常標志6 —— 堆棧錯誤7 —— 錯誤匯總狀態8 —— 條件代碼位0(c0)9 —— 條件代碼位1(c1)10 —— 條件代碼位2 (c2)11-13 —— 堆棧頂指針14 —— 條件代碼位3(c3)15 —— 繁忙標志

其中讀取狀態寄存器內容可使用 fstsw %ax

控制寄存器的位含義如下:

0 —— 非法操作異常掩碼 1 —— 非法格式化異常掩碼 2 —— 除數為0異常掩碼 3 —— 溢出異常掩碼 4 —— 下溢異常掩碼 5 —— 精度異常亞曼 6-7 —— 保留 8-9 —— 精度控制(00單精度,01未使用,10雙精度,11擴展精度) 10-11 —— 舍入控制(00舍入到最近,01向下舍入,10向上舍入,11向0舍入) 12 —— 無窮大控制 13–15 —— 保留

其中讀取控制寄存器和設置控制寄存器的指令如下:

# 加載到內存fstcw control# 加載到控制器fldcw control

最后的標志寄存器最為簡單,分別0-15位分別標志r0-r7共8個寄存器,每個寄存器占2位,這兩位的含義如下:

11 —— 合法擴展精度 01 —— 零 10 —— 特殊浮點 11 —— 無內容

另外對浮點寄存器的一些控制指令如下:

# 初始化fpu,控制、狀態設為默認值,但不改變fpu的數據finit# 恢復保存環境fldenv bufferfstenv buffer#清空浮點異常fnclex#fpu狀態保存fssave

fstenv 保存控制寄存器、狀態寄存器、標記寄存器、FPU指令指針偏移量、FPU數據指針,FPU最后執行的操作碼到內存中。

浮點數指令

接下來將要詳細說明其計算過程,要計算數據首先得看如何從內存中加載數據到寄存器,同時把結果從寄存器取出到內存,除了加載內存中的浮點數據指令,另外還有一些常量的加載,現列舉如下:

指令說明
finit初始化控制和狀態寄存器,不改變fpu數據寄存器
fstcw control將控制寄存器內容放到內存control處
fstsw status將狀態寄存器內容放到內存status處
flds value加載內存中的單精浮點到fpu寄存器堆棧
fldl value加載內存中的雙精浮點到fpu寄存器堆棧
fldt value加載內存中的擴展精度點到fpu寄存器堆棧
fld %st(i)將%st(i)寄存器數據壓入fpu寄存器堆棧
fsts value單精度數據保存到value,不出棧
fstl value雙精度數據保存到value,不出棧
fstt value擴展精度數據保存到value,不出棧
fstps value單精度數據保存到value,出棧
fstpl value雙精度數據保存到value,出棧
fstpt value擴展精度數據保存到value,出棧
fxch %st(i)交換%st(0)和%st(i)
fld1把 +1.0 壓入 FPU 堆棧中
fldl2t把 10 的對數(底數2)壓入 FPU 堆棧中
fldl2e把 e 的對數(底數2)壓入 FPU 堆棧中
fldpi把 pi 的值壓入 FPU 堆棧中
fldlg2把 2 的對數(底數10)壓入 FPU 堆棧中
fldln2把 2 的對數(底數e) 壓入堆棧中
fldz把 +0.0 壓入壓入堆棧中

以上指令雖多,但是還是很有規律,前綴f表示fpu操作,ld加載,st保存設置,p后綴彈出堆棧,s、l、t后綴表示單精度,雙精度,擴展精度,c后綴表 示控制寄存器,s后綴表示狀態寄存器。當然這僅僅是對AT&T語法而言,對MASM語法沒有s,l,t之分,需要使用type ptr來指明精度,即內存大小。

學會靈活的加載彈出數據堆棧后,接下來就要看一些基本的計算:

fadd    浮點加法fdiv    浮點除法fdivr   反向浮點除法fmul    浮點乘法fsub    浮點減法fsubr   反向浮點減法

對于以上的每種指令,有幾種指令格式,以fadd為例,列舉如下:

# 內從中的32位或者64位值和%st(0)相加fadd source# 把%st(x)和%st(0)相加,結果存入%st(0)fadd %st(x), %st(0)# 把%st(0)和%st(x)相加,結果存入%st(x)fadd %st(0), %st(x)# 把%st(0)和%st(x)相加,結果存入%st(x),彈出%st(0)faddp %st(0), %st(x)# 把%st(0)和%st(1)相加,結果存入%st(1),彈出%st(0)faddp# 把16位或32位整數與%st(0)相加,結果存入%st(0)fiadd source

這僅僅是對AT&T語法而言,對MASM源操作數與目的操作數相反!另外,對AT&T,與內存相關指令可加s、l指定內存精度。其中反向加法和反向除法是計算過程中目的與源反向計算。

浮點計算例子

接下來舉一個AT&T語法的例子,來計算表達式的值 ( 12.34 * 13 ) + 334.75 ) / 17.8 :

# ( 12.34 * 13 ) + 334.75 ) / 17.8.section .data    values: .float 12.34, 13, 334.75, 17.8    result: .double 0.0    outstring: .asciz "result is %f/n".section .text.globl _main_main:    leal values, %ebx    flds 12(%ebx)    flds 8(%ebx)    flds 4(%ebx)    flds (%ebx)    fmulp    faddp    fdivp %st(0), %st(1)    fstl result    leal result, %ebx    pushl 4(%ebx)    pushl (%ebx)    pushl $outstring    call _PRintfend:    pushl $0    call _exit

前四個flds加載所有的數據到寄存器堆棧,可以單步運行并是用gdb的print $st0打印堆棧寄存器的值,可以看到為什么是堆棧寄存器。需要說明的是由于printf的%f是double類型的輸出,所以最后要把一個8字節浮點放 到棧中傳遞,最終結果為27.818541,可以看到與計算器計算的結果近似相等。

浮點高級運算

除了基本的浮點計算,x87還提供了一些諸如余弦運算等高級計算功能:

指令說明
f2xm1計算2的乘方(次數為st0中的值,減去1
fabs計算st0中的絕對值
fchs改變st0中的值的符號
fcos計算st0中的值的余弦
fpatan計算st0中的值的部分反正切
fprem計算st0中的值除以st1的值的部分余數
fprem1計算st0中的值除以st1的值的IEEE部分余弦
fptan計算st0中的值的部分正切
frndint把st0中的值舍入到最近的整數
fscale計算st0乘以2的st1次方
fsin計算st0中的值的正弦
fsincos計算st0中的值的正弦和余弦
fsqrt計算st0中的值的平方根
fyl2x計算st1*log st0 以2為底
fyl2xp1計算st1*log (st0 + 1) 以2為底

下面來看一下浮點條件分支,浮點數的比較不像整數,可以容易的使用cmp指令比較,判斷eflags的值,關于浮點數比較,fpu提供獨立的比較機制和指令,現對這組比較指令進行說明:

指令說明
fcom比較st0和st1寄存器的值
fcom %st(x)比較st0和stx寄存器的值
fcom source比較st0和32/64位內存值
fcomp比較st0和st1寄存器的值,并彈出堆棧
fcomp %st(x)比較st0和stx寄存器的值,并彈出堆棧
fcomp source比較st0和32/64位內存值,并彈出堆棧
fcompp比較st0和st1寄存器的值,并兩次彈出堆棧
ftst比較st0和0.0

浮點數比較的結果放入狀態寄存器的c0,c2,c3條件代碼位中,其值如下:

結果c3c2c0
st0 > source000
st0 < source001
st0 = source100

如此倘若直接判斷c0,c2,c3的值比較繁瑣,所以可以使用一些技巧,首先使用fstsw指令獲得fpu狀態寄存器的值并存入ax,再使用sahf指令把 ah寄存器中的值加載到eflags寄存器中,sahf指令把ah寄存器的第0、2、4、6、7分別傳送至進位、奇偶、對準、零、符號位,不影響其他標 志,ah寄存器中這些位剛好包含fpu狀態寄存器的條件代碼值,所以通過fstsw和sahf指令組合,可以傳送如下值:

把c0位傳送到eflags的進位標志 把c2位傳送到eflags的奇偶校驗標志 把c3位傳送到eflags的零標志

傳送完畢后,可以用條件跳轉使用不同的結果值,另外需要說明的是浮點數相等判斷,因為浮點數本身存儲結構決定了它僅僅是一個近似值,所以不能直接判斷是否相 等,這樣可能與自己預期的結果不同,應該判斷兩個浮點數之差是否在一個很小的誤差范圍內,來決定這兩個浮點數是否相等。

根據上面的技巧,使用fstsw和fpu指令組合,可以方便的使用浮點判斷結果,這對我們是一種便利,而intel的工程師又為我們設計了一個組合指令,fcomi指令執行浮點比較結果并把結果存放到eflags寄存器的進位,奇偶,和零標志。

指令說明
fcomi比較st0和stx寄存器的值
fcomip比較st0和stx寄存器,并彈出堆棧
fucomi比較之前檢查無序值
fucomip比較之前檢查無序值,之后彈出堆棧

判斷結束后eflags的標志設置如下:

結果ZFPFCF
st0 > st(x)000
st0 < st(x)001
st0 = st(x)100

CMOV移動指令

最后介紹的是類似cmov的指令,根據判斷結果決定是否需要移動數據,其AT&T格式為 fcmovxx source, destination,其中source是st(x)寄存器,destination是st(0)寄存器。

指令說明
fcmovb如果st(0)小于st(x),則進行傳送
fcmove如果st(0)等于st(x),則進行傳送
fcmovbe如果st(0)小于或等于st(x),則進行傳送
fcmovu如果st(0)無序,則進行傳送
fcmovnb如果st(0)不小于st(x),則進行傳送
fcmovne如果st(0)不等于st(x),則進行傳送
fcmovnbe如果st(0)不小于或等于st(x),則進行傳送
fcmovnu如果st(0)非無序,則進行傳送

以上可以看出,無論從寄存器的操作,還是計算過程,都比整數運算要繁瑣的多,而且看似很簡單的一個表達式,轉化成浮點匯編需要做很多工作,由于其復雜性,同 一個表達式可以有多種運算過程,當然其中的效率相差很大,這依賴于對浮點匯編的理解程度,好在有高級語言處理相關工作,編寫浮點指令的情況比較少見。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

中文字幕 日韩 欧美| 在线一区免费| 亚洲乱码中文字幕| 日韩一级在线视频| 亚洲大片精品永久免费| 国产丝袜在线播放| 中文精品电影| 亚洲中午字幕| 91精品国产综合久久精品app| aa国产成人| 久久精品人妻一区二区三区| 亚洲一级网站| 中文字幕在线视频网| 在线视频不卡一区二区| 日韩视频不卡中文| 日韩国产在线观看一区| 91精品在线观看入口| 欧美三级中文字幕| 91www成人久久| 国内国产区免费视频| 深夜日韩欧美| 青青国产91久久久久久| 精品视频久久| www日韩欧美| 精品国内自产拍在线视频| av免费观看网站| 三级网站免费观看| 亚洲а∨精品天堂在线| 国内精品露脸在线视频播放| 中文字幕久久av| 午夜一区二区三区视频| 久久99精品国产| 欧洲精品二区| 亚洲成av人片在线| 在线视频不卡国产V| 日韩欧美99| 亚洲免费精品| 欧美日韩亚洲一区| 免费在线视频一级不卡| a√免费观看在线网址www| 91精品国产入口| 国产蜜臀在线| 日韩在线观看a| 中文字幕高清在线播放| 久久久水蜜桃| 视频一区二区精品的福利| 欧美日韩夫妻久久| 亚洲乱码中文字幕| 日韩中文字幕亚洲| 欧美色欧美亚洲高清在线视频| 日韩亚洲欧美中文高清在线| 中文在线不卡视频| 欧美不卡视频| 一区二区三区高清在线| 欧美日韩中文另类| 亚洲大片免费看| 一区二区视频在线| 国产午夜精品久久| 精品久久人人做人人爽| 欧美日韩综合视频网址| 91麻豆精品国产91久久久使用方法| 日韩午夜黄色| 青青久在线视频免费观看| 欧美日韩免费精品| 在线日韩欧美| 二区视频在线观看| 高清不卡一区二区| av一区在线| 日韩欧美中文第一页| 日韩中文字幕视频网| 国产高清在线观看| 中文字幕在线亚洲| 日韩中文字幕在线观看视频| 日韩在线视频中文字幕| 欧美日韩免费精品| 又黄又www的网站| 91精品免费看| 日本亚洲欧美| 中文字幕精品在线| 日韩国产一区久久| 国产卡1卡2卡三卡在线| 国产欧美一级| 日韩一级中文字幕| 久久精品人妻一区二区三区| 91精品在线观看入口| 91精品国产91久久久久久久久| 91久久精品网| 亚洲综合在线不卡| 色综合天天性综合| 日韩精品综合在线| 国产蜜臀在线| 在线观看国产一区| 一本一道久久a久久精品综合蜜臀| 黄色国产网站在线观看| 亚洲国产91精品在线观看| 成人xxxx| 国产日韩中文字幕在线| 国产日韩中文在线| 99pao成人国产永久免费视频| 亚洲黄页一区| 欧美高清一区| 欧美三级日韩三级国产三级| 欧美中文字幕视频| 精品一二三区视频| 久久精品国产视频| 国产永久在线观看| 精品对白一区国产伦| 久久久99久久| 久久精品99国产国产精| 日韩视频在线观看视频| 欧美三级中文字幕| 黄色欧美日韩| 国产欧美日韩在线观看| 一区二区91| 一二三区精品视频| 日韩中文字幕在线视频播放| 在线看的av| 亚洲欧美999| 日韩在线观看a| 精品久久电影| 中文在线不卡视频| 高清国产一区| 国产在线观看91| 日韩欧美一级二级三级久久久| 欧美日韩日本视频| 中文字幕 欧美 日韩| 日韩精品在线网站| 精品999视频| 欧美片网站免费| 中文字幕亚洲第一| 国产黄在线播放| 91精品国产高清| 欧美在线视频一区二区| 国产福利精品导航| 欧美1234区| 精品人妻二区中文字幕| 婷婷久久综合九色国产成人| 香蕉人人精品| 日韩视频在线一区| 精品不卡一区二区| 91精品网站| 在线资源av| 深夜福利一区| 国产一二三四| 精品三级久久| 日韩欧美一级二级三级久久久| 天天摸日日摸狠狠添| 日本黄色一区二区三区| 欧美日韩在线播放视频| 欧美日韩中文字幕在线| 欧美中文字幕第一页| 国产在线拍偷自揄拍精品| 亚洲视频在线观看日本a| 欧美日韩在线三级| 亚洲制服丝袜一区| 久久精品女人| 中文字幕精品一区二区三区在线| 日韩一级二级三级| 成人a在线观看| 欧美日韩一区二区在线视频| 国产一级在线免费观看| 一区二区三区在线|网站| 国产不卡的av| 日韩欧美字幕| 国产农村妇女精品一二区| 久久精品蜜桃| 极品久久久久久| 色99中文字幕| av一区在线观看| 国产永久在线观看| 一区二区视频免费看| 国产丝袜一区二区| 欧美日韩精品不卡| 欧美久久久精品| 国产区高清在线| 中文字幕在线播放一区| 日韩中文字幕在线观看视频| 51精品免费网站| 日韩精品视频在线观看网址| 欧美1234区| 日韩久久久精品| wwwwww在线观看| 亚洲一区中文字幕在线观看| 日本va欧美va精品发布| 在线综合 亚洲 欧美中文字幕| 中文在线一区| 一级片免费在线播放| 亚洲开心激情| 国产成人精品三级| av免费网站在线| 最近高清中文在线字幕在线观看1| 中文字幕在线观看亚洲| 日韩欧美高清在线| 欧美亚洲国产免费| 日韩欧美高清在线| 日韩在线视频一区二区三区| 国产 欧美 在线| 欧美一级在线免费| 日韩精品综合在线| 在线一区二区三区精品| 日韩欧美中文在线视频| a视频在线播放| 91精品在线观| 日韩精品视频在线播放| 红桃视频亚洲| 国产95在线|亚洲| 亚洲福利视频在线| 国产在线观看色| 99中文字幕一区| 一区二区三区久久| 欧美日韩一二三四| 国产极品嫩模在线视频一区| 欧美日韩激情一区二区三区| 欧美日韩视频网站| 亚洲一区中文在线| av中文在线资源| 日韩精品福利一区二区三区| 国产婷婷色一区二区三区在线| 久久99久久久久| 999精品在线| 中文在线一区二区| 国产三级免费观看| 最近中文字幕日韩精品| 欧美国产小视频| 中文字幕 欧美 日韩| 亚洲尤物av| 日韩欧美色综合| 日韩视频一区在线观看| 亚洲成av人片一区二区密柚| 欧美日韩亚洲国内综合网俺| 精品熟女一区二区三区| 成人ww免费完整版在线观看| 日韩免费电影网站| 国产真实乱子伦精品视频| 精品在线网站观看| 在线视频一区二区三区在线播放| 日韩欧美国产成人一区二区| 国产亚洲一区字幕| 国产99对白在线播放| 中文字幕在线看视频国产欧美| 91av久久久| 美女黄a一级视频| 日韩在线播放一区二区| 91精品国产91久久久| 一区二区三区高清在线| 在线一区二区不卡| 日韩中文字幕久久| 日本亚洲欧美| 国产欧美日韩视频| 中文字幕一区不卡| 深夜福利亚洲| 中文字幕 日韩 欧美| 日韩欧美中文字幕在线观看| 日韩欧美一级在线播放| 一区二区在线观看不卡| 日韩欧美国产网站| 日韩欧美中文第一页| 一区二区不卡在线播放| 国产又粗又猛又爽又黄91精品| 久久久精品国产99久久精品芒果| 欧美日韩在线视频首页| 欧美日韩成人一区二区| 欧美日韩精品综合在线| 不卡一二三区| 国产免费一级片| a视频免费在线观看| 国产三级视频在线| 日韩视频 中文字幕| 一区二区不卡视频| 欧美 日韩 国产 在线观看| 国产黄色在线网站| 国产在线拍偷自揄拍精品| 亚洲一区在线观看视频| 阿v免费在线观看| 日韩精品在线私人| 精品中文字幕在线| 日本不卡视频一区| 一区二区视频在线| 欧美日韩一二| 最近中文字幕在线中文视频| 最近中文字幕在线中文高清版| 国产丝袜在线播放| 中文字幕在线观看国产| 高清不卡一区二区| 九九视频精品免费| 欧美日韩乱国产| 国产日韩成人精品| 日本a口亚洲| 在线观看一区| 91精品国产免费久久综合| 视频一区日韩| 免费在线亚洲| 亚洲经典中文字幕| 精品三区视频| 久久久久久久久99精品| 91欧美日韩在线| 日韩精品中文在线观看| 亚洲电影中文字幕在线观看| 精品网站999www| 一区二区视频免费看| 欧美亚洲视频在线看网址| 91精品视频在线| 精品无人国产偷自产在线| 欧美一级久久久久久久久大| 国产三级在线观看视频| 精品国产乱码一区二区| 国产伦精品免费视频| 91麻豆精品国产91久久久使用方法| 精品国产免费观看一区| av中文网站| 欧美日韩综合不卡| 一区在线视频观看| 免费看日韩精品| 国产欧美日韩久久| 日韩国产亚洲欧美| 日韩亚洲一区在线| 国产网站av| 91欧美在线| 久久99精品久久久久子伦| 精品日韩欧美| 1区2区在线| 国产黄色在线网站| www高清在线视频日韩欧美| 91精品国产调教在线观看| 日韩欧美三级视频| 国产乱一区二区| 久草视频观看| a√免费观看在线网址www| 91精品国产免费久久综合| 日韩欧中文字幕| 日韩一级在线免费观看| 色猫猫国产区一区二在线视频 | 最近中文字幕第一页| 先锋男人资源站| 亚洲三级免费看| 欧美日韩高清一区二区不卡| 成人精品视频一区| 在线资源av| 成人ww免费完整版在线观看| 日韩.欧美.亚洲| 蜜桃精品在线| 欧美中文字幕在线观看视频| 国产视频一二区| 亚洲综合日韩| 欧美日韩激情在线一区二区三区| 日韩欧美一级二级三级久久久| 亚洲va中文字幕| 日韩在线视频在线观看| 欧美日韩精品欧美日韩精品| 欧美特黄一区| 在线视频不卡一区二区| 欧美日韩国产高清| 日韩一级免费视频| 亚洲欧洲三级| 国产视频aaa| 欧美日韩亚洲综合在线| 久久精品www| 99这里有精品视频| 精品一二三区| 国产在线www| 亚洲三级中文字幕| 中文字幕视频在线观看| lutube成人福利在线观看| 免费在线视频一区二区| 一区二区中文视频| 国产一级视频在线播放| 精品国产欧美成人夜夜嗨| 91精品啪在线观看国产60岁| 日韩三级高清在线| 91精品国产综合久久久久久| 国产欧美日韩精品在线观看| eeuss一区| 亚洲电影中文字幕在线观看| 中文字幕久久精品| 日韩精品视频免费| 日韩欧美综合视频| 日韩欧美亚洲区| 91精品国产自产| 福利一区二区| 日韩午夜中文字幕| 99久久婷婷| 日韩欧美专区在线| 欧美综合精品| 日韩欧美国产成人一区二区| 亚洲福利精品视频| 一区二区不卡视频| 欧美日韩国产中文精品字幕自在自线| 欧美日韩中文字幕综合视频 | 国产成人综合精品| 欧美日韩第一| 欧美国产一级| 日韩精品视频中文字幕| 日韩精品视频中文在线观看| 中文字幕4区| 91精品啪在线观看国产60岁| 中文字幕日韩精品在线| 中文字幕视频一区二区三区久| 精品播放一区二区| 91精品国产自产| 欧美日韩高清在线播放|