• <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

            突出重點,系統全面,不留死角

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

            公告

            QQ:34O859O5

            常用鏈接

            留言簿(15)

            搜索

            •  

            積分與排名

            • 積分 - 210877
            • 排名 - 122

            最新評論

            閱讀排行榜

            評論排行榜

            80X87FPU浮點數據的格式、浮點寄存器的特點

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

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

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

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

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

            Feedback

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

            # re: [收集]關于匯編80X87FPU浮點運算 2007-04-09 12:23 音標
            于匯編80X87FPU浮點運算   回復  更多評論
              

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

            精品999久久久久久中文字幕| 久久www免费人成看片| 91久久精品电影| 国产高清美女一级a毛片久久w| 国内精品久久久久影院网站| 亚洲国产成人久久综合一区77| 奇米影视7777久久精品人人爽| 国产欧美一区二区久久| 久久乐国产精品亚洲综合| 亚洲AV无码久久| 久久精品这里只有精99品| 亚洲色欲久久久综合网东京热| 91精品国产91热久久久久福利| 精品综合久久久久久88小说| 婷婷久久久亚洲欧洲日产国码AV| 青青国产成人久久91网| 久久亚洲精品无码AV红樱桃| 久久国产精品视频| 久久免费视频网站| 人妻少妇久久中文字幕| 中文字幕精品久久| 久久99精品国产麻豆婷婷| 东京热TOKYO综合久久精品| 久久人人爽人人人人片av| 久久99国产精品成人欧美| 亚洲成色999久久网站| 精品免费久久久久久久| 久久亚洲日韩精品一区二区三区| 久久亚洲国产成人影院| 欧美日韩精品久久久久| 久久人搡人人玩人妻精品首页| 久久亚洲国产欧洲精品一| 久久综合久久综合久久综合| 国内精品久久九九国产精品| 精品久久久久久无码专区不卡| 中文字幕乱码人妻无码久久| 久久亚洲AV成人无码| 久久久久久伊人高潮影院| 久久婷婷五月综合国产尤物app | 久久婷婷午色综合夜啪| 久久人人爽人爽人人爽av|