在計算機系統當中,資料的儲存是以位元組為單位的,每個位址單元當中都可以存放乙個位元組的資料,每個位元組為8bit。在c語言中編譯器為char型的資料分配了乙個位元組的儲存空間,為long型的資料分配了4個位元組的儲存空間,為int型的資料分配了2個位元組的儲存空間(要看具體的編譯器),這樣當所定義的資料型別占用的儲存空間大於乙個位元組時就需要用多個位元組的空間來儲存乙個資料,即乙個資料占用了多了位址單元,這樣就存在著乙個儲存順序的問題,即這幾個位元組在記憶體單元中是以什麼樣的順序來儲存的。
在arm體系中通常採用的位元組儲存機制主要有兩種:big-endian(大端模式)little-endian(小端模式)。big-endian是指資料的高位元組儲存在記憶體的低位址中,而資料的低位元組儲存在記憶體的高位址中。little-endian是指資料的高位元組儲存在記憶體的高位址中,而資料的低位元組儲存在記憶體的低位址中,這種儲存模式將位址的高低和資料位權有效地結合起來,高位址部分權值高,低位址部分權值低,和我們的邏輯方法一致。
舉乙個例子,比如十六進製制數字0x12345678在記憶體中的表示形式為:
1)大端模式:
低位址 -----------------> 高位址
0x12 | 0x34 | 0x56 | 0x78
2)小端模式:
低位址 ------------------> 高位址
0x78 | 0x56 | 0x34 | 0x12
在arm體系結構中採用big-endian儲存模式還是little-endian儲存模式都各有利弊,比如在little-endian模式下強制轉換資料不需要調整位元組內容,而在big-endian模式下符號位的判定固定為第乙個位元組,與little-endian模式相比較更容易判斷資料的正負。
在arm體系中預設的儲存格式為小端對齊,但arm處理器還可以由硬體來選擇是大端模式還是小端模式。
源文:>>>更多優秀技術博文每日更新
ARM體系中的儲存系統的簡述
arm 體系使用單一的位址空間。該位址空間的大小為2 32 個8 位位元組。這些位元組單元的位址都是無符號的32 位數值,取值範圍是0 2 32 1。arm 的位址空間也可以看作是2 30 個32 位的字單元。這些字單元的位址可以被4 整除,也就是說,該位址的低兩位為0b00。位址為a 的字資料報括...
ARM體系結構中的儲存系統
在介紹arm體系結構中的儲存系統之前,先簡單介紹一下arm程式設計模型中與儲存系統相關的一些概念。arm體系結構使用單一的平板位址空間,該位址空間的範圍大小為232個8位位元組。這些位元組單元的位址是乙個無符號的32位數值,其取值範圍為0 232 1。有了儲存系統的定址範圍之後,還需要討論一下實際儲...
ARM學習筆記 四 ARM體系的儲存系統
arm體系結構中的儲存系統 arm 儲存系統的體系結構適應不同的嵌入式應用系統的需要差別很大。最簡單的儲存系統使用平辦事的位址對映機制,就像一些簡單的彈片機系統中一樣,位址空間的分 配方式是固定的,系統各部分都使用實體地址。而一些複雜系統可能包括下面的一種或幾種技術,從而提供更為強大的儲存系統。系統...