• <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ù)  更多評論
              

            久久亚洲中文字幕精品一区| 97久久精品人人澡人人爽| 久久无码AV中文出轨人妻| 欧美与黑人午夜性猛交久久久 | 亚洲精品第一综合99久久| 香蕉久久夜色精品升级完成| 久久亚洲高清观看| 久久国产精品无| 久久精品人人做人人爽电影| 亚洲国产成人久久综合碰| 亚洲国产精品无码久久一区二区| 欧美亚洲另类久久综合| 亚洲国产精品久久久天堂| 欧美性大战久久久久久| 亚洲国产成人久久综合碰碰动漫3d | 麻豆久久| 色综合久久精品中文字幕首页| 久久香综合精品久久伊人| 品成人欧美大片久久国产欧美... 品成人欧美大片久久国产欧美 | 久久99国产精品成人欧美| 久久天天躁狠狠躁夜夜avapp| 亚洲国产精品成人久久蜜臀 | 四虎国产精品成人免费久久| 91久久成人免费| 久久A级毛片免费观看| 国内高清久久久久久| 久久久久无码精品| 色偷偷888欧美精品久久久| 97久久天天综合色天天综合色hd| 人妻无码精品久久亚瑟影视| 国产成人无码精品久久久免费 | 久久综合色区| 久久亚洲天堂| 亚洲精品无码久久毛片| 久久午夜福利电影| 午夜精品久久影院蜜桃| 无码国内精品久久人妻麻豆按摩| 激情久久久久久久久久| 久久亚洲欧洲国产综合| 日韩人妻无码一区二区三区久久99| 久久综合色区|