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

            搜索

            •  

            積分與排名

            • 積分 - 211486
            • 排名 - 123

            最新評論

            閱讀排行榜

            評論排行榜

            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 閱讀(4028) 評論(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浮點運算問題一直沒能解決,希望博主能給予指導。  回復  更多評論
              

            久久久网中文字幕| 伊人久久大香线蕉综合影院首页| 欧美黑人激情性久久| 久久精品a亚洲国产v高清不卡| 精品无码久久久久国产| 久久九九久精品国产免费直播| 亚洲欧洲久久久精品| 久久久亚洲裙底偷窥综合 | 久久国产精品一区| 久久久久久午夜精品| 国产精品9999久久久久| 欧美与黑人午夜性猛交久久久| 三上悠亚久久精品| 99精品国产免费久久久久久下载| 国产美女久久久| 免费久久人人爽人人爽av| 久久精品国产一区| 色偷偷88888欧美精品久久久| 欧美激情精品久久久久| 久久免费的精品国产V∧ | 久久无码专区国产精品发布 | 亚洲日韩欧美一区久久久久我 | 久久国产热精品波多野结衣AV| 久久精品免费网站网| 久久综合丝袜日本网| 久久精品国产亚洲av高清漫画| 亚洲国产视频久久| 久久国产精品免费一区| 日韩欧美亚洲综合久久影院d3| 久久久噜噜噜久久熟女AA片| 久久人人爽人人爽人人片AV高清| 亚洲婷婷国产精品电影人久久| 四虎影视久久久免费| 无码8090精品久久一区 | 国产精品久久新婚兰兰| 亚洲精品无码久久毛片| 女同久久| 久久精品久久久久观看99水蜜桃| 中文字幕久久亚洲一区| 色欲久久久天天天综合网精品| 丰满少妇高潮惨叫久久久|