• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            saga's blog

            突出重點,系統(tǒng)全面,不留死角

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              33 Posts :: 2 Stories :: 185 Comments :: 0 Trackbacks

            公告

            QQ:34O859O5

            常用鏈接

            留言簿(15)

            搜索

            •  

            積分與排名

            • 積分 - 210894
            • 排名 - 122

            最新評論

            閱讀排行榜

            評論排行榜

            80X87FPU浮點數(shù)據(jù)的格式、浮點寄存器的特點

            浮點數(shù)據(jù)格式:
            在計算機中,實數(shù)的浮點格式(Floating-Point Format)所示,分成指數(shù)、有效數(shù)字和符號位三個部分。
            ·? 符號(Sign)——表示數(shù)據(jù)的正負,在最高有效位(MSB)。負數(shù)的符號位為1,正數(shù)的符號為0。
            ·? 指數(shù)(Exponent)——也被稱為階碼,表示數(shù)據(jù)以2為底的冪。指數(shù)采用偏移碼(Biased Exponent)表示,恒為整數(shù)。
            ·? 有效數(shù)字(Significand)——表示數(shù)據(jù)的有效數(shù)字,反映數(shù)據(jù)的精度。有效數(shù)字一般采用規(guī)格化(Normalized)形式,是一個純小數(shù),所以也被稱為尾數(shù)(Mantissa)、小數(shù)或分數(shù)(Fraction)。
            ????? 80x87支持三種浮點數(shù)據(jù)類型:單精度、雙精度和擴展精度;它們的長度依次為32、64和80位,即4、8和10個字節(jié);
            ·? 單精度浮點數(shù)(32位短實數(shù))——由1位符號、8位指數(shù)、23位有效數(shù)組成。
            ·? 雙精度浮點數(shù)(64位長實數(shù))——由1位符號、11位指數(shù)、52位有效數(shù)組成。
            ·? 擴展精度浮點數(shù)(80位臨時實數(shù))——由1位符號、15位指數(shù)、64位有效數(shù)組成。很多計算機中并沒有80位擴展精度這種數(shù)據(jù)類型,80x87 FPU主要在內(nèi)部使用它存貯中間結(jié)果,以保證最終數(shù)值的精度。

            80x87的指令系統(tǒng)
            浮點處理單元FPU具有自己的指令系統(tǒng),共有幾十種浮點指令,可以分成傳送、算術(shù)運算、超越函數(shù)、比較、FPU控制等類。浮點指令歸屬于ESC指令,其前5位的操作碼都是11011b,它的指令助記符均以F開頭。
            1. 浮點傳送類指令
            ??? 浮點數(shù)據(jù)傳送指令完成主存與棧頂st(0)、數(shù)據(jù)寄存器st(i)與棧頂之間的浮點格式數(shù)據(jù)的傳送。浮點數(shù)據(jù)寄存器是一個首尾相接的堆棧,所以它的數(shù)據(jù)傳送實際上是對堆棧的操作,有些要改變堆棧指針TOP,即修改當(dāng)前棧頂。
            2. 算術(shù)運算類指令
            ??? 這類浮點指令實現(xiàn)浮點數(shù)、16/32位整數(shù)的加、減、乘、除運算,它們支持的尋址方式相同。這組指令還包括有關(guān)算術(shù)運算的指令,例如求絕對值、取整等。
            3. 超越函數(shù)類指令
            ??? 浮點指令集中包含有進行三角函數(shù)、指數(shù)和對數(shù)運算的指令。
            4. 浮點比較類指令
            ??? 浮點比較指令比較棧頂數(shù)據(jù)與指定的源操作數(shù),比較結(jié)果通過浮點狀態(tài)寄存器反映。
            5. FPU控制類指令
            ??? FPU控制類指令用于控制和檢測浮點處理單元FPU的狀態(tài)及操作方式。

            采用浮點指令的匯編語言程序格式,與整數(shù)指令源程序格式是類似的,但有以下幾點需要注意:
            ·? 使用FPU選擇偽指令
            ????? 由于匯編程序MASM默認只識別8086指令,所以要加上.8087 / .287 / .387等偽指令選擇匯編浮點指令;有時,還要加上相應(yīng)的.238/.386等偽指令。
            ·? 定義浮點數(shù)據(jù)
            ????? 數(shù)據(jù)定義偽指令dd(dword) / dq(qword) / dt(tbyte)依次說明32/64/80位數(shù)據(jù);它們可以用于定義單精度、雙精度和擴展精度浮點數(shù)。為了區(qū)別于整數(shù)定義,MASM 6.11建議采用REAL4、REAL8、REAL10定義單、雙、擴展精度浮點數(shù),但不能出現(xiàn)純整數(shù)(其實,整數(shù)后面補個小數(shù)點就可以了)。相應(yīng)的數(shù)據(jù)屬性依次是dword、qword、tbyte。另外,實常數(shù)可以用E表示10的冪。
            ·? 初始化浮點處理單元
            ????? 每當(dāng)執(zhí)行一個新的浮點程序時,第一條指令都應(yīng)該是初始化FPU的指令finit。該指令清除浮點數(shù)據(jù)寄存器棧和異常,為程序提供一個“干凈”的初始狀態(tài)。否則,遺留在浮點寄存器棧中的數(shù)據(jù)可能會產(chǎn)生堆棧溢出。另一方面,浮點指令程序段結(jié)束,也最好清空浮點數(shù)據(jù)寄存器。

            浮點寄存器:
            浮點執(zhí)行環(huán)境的寄存器主要是8個通用數(shù)據(jù)寄存器和幾個專用寄存器,它們是狀態(tài)寄存器、控制寄存器、標(biāo)記寄存器等
            8個浮點數(shù)據(jù)寄存器(FPU Data Register),編號FPR0 ~ FPR7。每個浮點寄存器都是80位的,以擴展精度格式存儲數(shù)據(jù)。當(dāng)其他類型數(shù)據(jù)壓入數(shù)據(jù)寄存器時,PFU自動轉(zhuǎn)換成擴展精度;相反,數(shù)據(jù)寄存器的數(shù)據(jù)取出時,系統(tǒng)也會自動轉(zhuǎn)換成要求的數(shù)據(jù)類型。
            ????? 8個浮點數(shù)據(jù)寄存器組成首尾相接的堆棧,當(dāng)前棧頂ST(0)指向的FPRx由狀態(tài)寄存器中TOP字段指明。數(shù)據(jù)寄存器不采用隨機存取,而是按照“后進先出”的堆棧原則工作,并且首尾循環(huán)。向數(shù)據(jù)寄存器傳送(Load)數(shù)據(jù)時就是入棧,堆棧指針TOP先減1,再將數(shù)據(jù)壓入棧頂寄存器;從數(shù)據(jù)寄存器取出(Store)數(shù)據(jù)時就是出棧,先將棧頂寄存器數(shù)據(jù)彈出,再修改堆棧指針使TOP加1。浮點寄存器棧還有首尾循環(huán)相連的特點。例如,若當(dāng)前棧頂TOP=0(即ST(0) = PFR0),那么,入棧操作后就使TOP=7(即使ST(0) = PFR7),數(shù)據(jù)被壓入PFR7。所以,浮點數(shù)據(jù)寄存器常常被稱為浮點數(shù)據(jù)棧。
            ????? 為了表明浮點數(shù)據(jù)寄存器中數(shù)據(jù)的性質(zhì),對應(yīng)每個FPR寄存器,都有一個2位的標(biāo)記(Tag)位,這8個標(biāo)記tag0 ~ tag7組成一個16位的標(biāo)記寄存器。

            posted on 2007-01-17 14:46 saga.constantine 閱讀(4002) 評論(3)  編輯 收藏 引用 所屬分類: 轉(zhuǎn)的貼

            Feedback

            # re: [收集]關(guān)于匯編80X87FPU浮點運算 2007-01-18 18:46 慧慧
            發(fā)貼了!頂!!!!!!!!  回復(fù)  更多評論
              

            # re: [收集]關(guān)于匯編80X87FPU浮點運算 2007-04-09 12:23 音標(biāo)
            于匯編80X87FPU浮點運算   回復(fù)  更多評論
              

            # re: [收集]關(guān)于匯編80X87FPU浮點運算 2010-12-31 08:45 1ND935136464
            請教:本人有個關(guān)于80X87FPU浮點運算問題一直沒能解決,希望博主能給予指導(dǎo)。  回復(fù)  更多評論
              

            一级做a爰片久久毛片看看| 97视频久久久| 久久香蕉超碰97国产精品| 伊人久久大香线蕉无码麻豆| 国产精品99久久久久久www| 国产精品久久久久久久| 久久久久一区二区三区| 国产精品99久久久精品无码| 久久久久亚洲AV综合波多野结衣| 久久香蕉国产线看观看99| 久久精品一区二区国产| 99麻豆久久久国产精品免费| 精品久久久久久久无码| 久久免费高清视频| 亚洲国产精品久久久久| 国产女人aaa级久久久级| 久久996热精品xxxx| 精品久久久中文字幕人妻| 久久人人爽人人爽人人AV| 久久精品一区二区| 欧美与黑人午夜性猛交久久久| 国产精品久久久香蕉| 亚洲人成精品久久久久| 国内精品久久久久伊人av| 久久www免费人成精品香蕉| 久久香蕉国产线看观看猫咪?v| 欧美亚洲国产精品久久| 国内精品久久久久影院优| 精品免费久久久久国产一区| 久久这里的只有是精品23| 久久久久久综合网天天| 久久99精品国产一区二区三区| 久久这里有精品视频| 久久亚洲AV成人出白浆无码国产| 久久综合九色综合精品| 久久久久久久久久久精品尤物 | 精品久久久久久无码中文字幕一区| 久久精品天天中文字幕人妻| 国产激情久久久久影院小草| 欧美亚洲国产精品久久高清| 一本色道久久99一综合|