大位元組由小到大和小的位元組由小到大架構的說明

文章翻譯 文章翻譯
文章編號: 102025 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

在設計時的電腦,有兩個不同的架構 forhandling 記憶體存放區。呼叫大到小,而且小 Endianand 參考位元組儲存在記憶體中的順序。Windows NT 小的位元組由小到大架構的設計,以及可與大到小相容,因為大部分程式與某些相依性小位元組由小到大的 arewritten 是 notdesigned。

其他相關資訊

這些兩個句子被衍生自"較大的一端 In"和"一點以."它們參考的儲存記憶體的方式。在 Intel 電腦上,小小的結尾會儲存第一次。這表示十六進位的字,如在記憶體中的 0x1234 isstored 為 (0x34 0x12) 時。小結束,或更低結束,isstored 第一次。同樣適用於 4 位元值。例如,0x12345678 等會儲存為 (0x78 0x56 0x34 0x12)。「 較大的一端中 「 反向的方式,讓 0x1234 會在記憶體中儲存為 (0x12 0x34) 的 doesthis。這是 Motorola 電腦所使用的方法,可以使用於 risc 電腦上的 alsobe。Risc MIPS 電腦和 theDEC Alpha 電腦是設定為大到小或小 Endian.Windows NT 只適用於中兩台電腦上的小位元組由小到大的模式。

Windows NT 的設計是小位元組由小到大的架構。這樣會自動處理所有 operatingsystem 相關的問題,是撰寫用抽象層 (HAL)。因此,它建立在大到小的架構無法運作的 HAL 的 ispossible。移植程式碼的基本問題必須處理 thecode 撰寫所有程式的方式。通常撰寫程式碼與 theassumption 正在使用大到小或位元組由小到大小。這不是特定的 HAL。它可以是圖形的 bitmasking 一樣簡單。要釐清這個概念更多,請依照下列兩個 programmingexamples。

範例 1

   struct
   {
      WORD y;
      WORD x;
   } POS;

   lparam = (DWORD) POS;
				
基本上,是在程式碼中少位元組由小到大是 beingused 的假設。切換位元組會被假設在 ' C'structure。這是在 Intel 架構上更快,但將不 workwith 大到小。

範例 2

另一個範例是使用位元遮罩的常見的做法。Followingis 範例中定義的位元遮罩:
   #define BITMASK    0x0008
				
這可讓您檢查是否 4 位元是 1,否則您和它 withanother 數字。它也可讓您設定的第四位元的 OR ing itwith 另一個值。問題出在當您 OR 或與此 withDWORD (雙 Word),或 WORD 以外的任何項目大小的值。Thiscauses 怪東西發生和無法預期的結果。您可能會 makeassumptions 有關如何使用小的位元組由小到大,但它不會 workthe 的大到小的方式相同。大量的程式碼是使用內建的這些假設的 alreadycreated。

請注意 PowerPC 和 Sparc 晶片也 switchable 與 LittleEndian 大到小。不過,thePowerPC 晶片的蘋果 PowerMac 實作卡在大型位元組由小到大的模式。因此,Windows NT 可能連接埠 tothePowerPC,但可能不適用於 PowerPC 的 PowerMac 實作。

屬性

文章編號: 102025 - 上次校閱: 2014年2月9日 - 版次: 3.0
這篇文章中的資訊適用於:
  • Microsoft Windows NT Workstation 3.1
關鍵字:?
kbhardware kbmt KB102025 KbMtzh
機器翻譯
請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。
按一下這裡查看此文章的英文版本:102025
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com