大端的意思 ARM 920T體系結(jié)構(gòu),支持兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),大端格式和小端格式。這里什么是大端和小端格式?什么是字?jǐn)?shù)?
ARM 920T體系結(jié)構(gòu),支持兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),大端格式和小端格式。這里什么是大端和小端格式?什么是字?jǐn)?shù)?大端格式和小端格式是存儲(chǔ)word數(shù)據(jù)的兩種方式。具體來(lái)說(shuō),在arm系統(tǒng)的嵌入式體系結(jié)構(gòu)中,調(diào)
ARM 920T體系結(jié)構(gòu),支持兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),大端格式和小端格式。這里什么是大端和小端格式?什么是字?jǐn)?shù)?
大端格式和小端格式是存儲(chǔ)word數(shù)據(jù)的兩種方式。具體來(lái)說(shuō),在arm系統(tǒng)的嵌入式體系結(jié)構(gòu)中,調(diào)用存儲(chǔ)數(shù)據(jù)的內(nèi)存有兩種方式。在嵌入式系統(tǒng)架構(gòu)中,內(nèi)存被視為從零地址開(kāi)始的字節(jié)的線性組合。依次放置0~3字節(jié)中的第一個(gè)存儲(chǔ)字?jǐn)?shù)據(jù)和4~7字節(jié)中的第二個(gè)存儲(chǔ)字?jǐn)?shù)據(jù)。作為一個(gè)32位微處理器,arm架構(gòu)可以支持高達(dá)4GB的尋址(2^32字節(jié))。大端格式意味著字?jǐn)?shù)據(jù)的高字節(jié)放在本地地址,而低字節(jié)數(shù)據(jù)放在高地址。小端格式意味著字?jǐn)?shù)據(jù)的高字節(jié)放在高地址,而低字節(jié)數(shù)據(jù)放在地地址。arm中的字?jǐn)?shù)據(jù)是4字節(jié),即32位數(shù)據(jù)。每個(gè)地址在內(nèi)存中保存一個(gè)字節(jié)。例如:雙字0x01020304(DWORD)存儲(chǔ)在內(nèi)存中。內(nèi)存地址40000140024003小端格式是:04030201大端格式是:01020304微機(jī)原理一般是8086/8088架構(gòu),x86系列CPU都是小端格式字節(jié)排序。
如何判斷主機(jī)是大端還是小端?
小端:數(shù)據(jù)的高位字節(jié)存儲(chǔ)在高位地址,低位字節(jié)存儲(chǔ)在低位地址。大端:數(shù)據(jù)的高位字節(jié)存儲(chǔ)在低位地址,低位字節(jié)存儲(chǔ)在高位地址。在一個(gè)典型的體系結(jié)構(gòu)中,如果一個(gè)字是四個(gè)字節(jié),那么小端機(jī)從地址到高位的數(shù)據(jù)0x0a0b0c0d的存儲(chǔ)模式是:0x0D、0x0c、0x0b和0x0a。在大端模式下,從地址到高位的數(shù)據(jù)存儲(chǔ)模式是:0x0a、0xb、0x0c和0x0D。在一般的處理器中,arm通常處于大端模式,而x86體系結(jié)構(gòu)處于小型端模式。判斷方法:首先通過(guò)讀取同一地址的整數(shù)數(shù)據(jù)和字符數(shù)據(jù)來(lái)區(qū)分大端和小端。其次,根據(jù)并集的共享內(nèi)存特性判斷機(jī)器類(lèi)型
使用大小模式存儲(chǔ)數(shù)據(jù)的主要區(qū)別在于,按照存儲(chǔ)字節(jié)的順序,大端模式將高位存儲(chǔ)在低位,小端模式將低位存儲(chǔ)在高位。
以大端模式存儲(chǔ)數(shù)據(jù)符合人類(lèi)的正常思維,而以小端模式存儲(chǔ)數(shù)據(jù)則有利于計(jì)算機(jī)處理。到目前為止,還沒(méi)有關(guān)于用大端還是小端存儲(chǔ)數(shù)據(jù)更好的結(jié)論。