arm 體系使用單一的位址空間。該位址空間的大小為2^32 個8 位位元組。這些位元組單元的位址都是無符號的32 位數值, 取值範圍是0--2^32-1。
arm 的位址空間也可以看作是2^30 個32 位的字單元。這些字單元的位址可以被4 整除,也就是說,該位址的低兩位為0b00。 位址為a 的字資料報括位址為a 、a + 1 、a + 2 、a+3 四個位元組單元的內容。
在armv4 及以上的版本中, arm 的位址空間也可以看作是2 ^31個16 位的半字單元。這些半字單元的位址可以被2 整除, 也就是說, 該位址的最低位為0b0 。位址為a 的半字資料報括位址為a 、a+1兩個位元組單元的內容。
各儲存單元的位址作為32 位的無符號數, 可以進行常規的整數運算。這些運算的結果進行2^32 取模。也就是說, 運算結果發生上溢位和下溢位時, 位址將會發生捲繞。
每各字單元包含4各位元組單元或者2個半字單元;乙個半字單元中包含兩個位元組單元。但是四個位元組哪個是高位位元組,哪個是地位位元組有兩種不同的格式:big-endian格式 little-endian格式
在big-endian 格式中,對於位址為a 的字單元,包括位元組單元a 、a+1 、a+2 及a+3 ,其中位元組單元由高位到低位位元組順序為a 、a + 1 、a + 2 、a+3 ;位址為a 的字單元包括半字單元a 、a + 2 , 其中半字單元由高位到低位位元組順序為a 、a+2; 位址為a 的半字單元包括位元組單元a 、a + 1 , 其中位元組單元由高位到低位位元組順序為a 、a+i。
在little-endian 格式中, 位址為a 的字單元包括位元組單元a 、a + 1 、a+2 及a + 3 , 其中位元組單元由高位到低位位元組順序為a + 3 、a+2 、a + 1 、a;位址為a 的字單元包括半字單元a 、a + 2 , 其中半字單元由高位到低位位元組順序為a + 2 、a; 位址為a 的半字單元包括位元組單元a 、a + 1 , 其中位元組單元由高位到低位位元組順序為a + 1 、a。
ARM體系架構中的儲存系統
在計算機系統當中,資料的儲存是以位元組為單位的,每個位址單元當中都可以存放乙個位元組的資料,每個位元組為8bit。在c語言中編譯器為char型的資料分配了乙個位元組的儲存空間,為long型的資料分配了4個位元組的儲存空間,為int型的資料分配了2個位元組的儲存空間 要看具體的編譯器 這樣當所定義的資...
ARM體系結構中的儲存系統
在介紹arm體系結構中的儲存系統之前,先簡單介紹一下arm程式設計模型中與儲存系統相關的一些概念。arm體系結構使用單一的平板位址空間,該位址空間的範圍大小為232個8位位元組。這些位元組單元的位址是乙個無符號的32位數值,其取值範圍為0 232 1。有了儲存系統的定址範圍之後,還需要討論一下實際儲...
ARM學習筆記 四 ARM體系的儲存系統
arm體系結構中的儲存系統 arm 儲存系統的體系結構適應不同的嵌入式應用系統的需要差別很大。最簡單的儲存系統使用平辦事的位址對映機制,就像一些簡單的彈片機系統中一樣,位址空間的分 配方式是固定的,系統各部分都使用實體地址。而一些複雜系統可能包括下面的一種或幾種技術,從而提供更為強大的儲存系統。系統...