ARM微處理器的編程模型之:數(shù)據(jù)類型
3.1.3 存儲(chǔ)器大/小端
從軟件角度看,內(nèi)存相對(duì)于一個(gè)大的字節(jié)數(shù)組,其中每個(gè)數(shù)組元素(字節(jié))都是可尋址的。
ARM支持大端模式(big-endian)和小端模式(little-endian)兩種內(nèi)存模式。
圖3.2和圖3.3分別顯示了內(nèi)存的大端模式和小端模式。
圖3.2 大端模式
圖3.3 小端模式
下面的例子顯示了使用內(nèi)存大/小端(big/little endian)的存取格式。
【例3.1】
程序執(zhí)行前:
r0=0x11223344
執(zhí)行指令:
r1=0x100
STR r0,[r1]
LDRB r2,[r1]
執(zhí)行后:
小端模式下:r2=0x44
大端模式下:r2=0x11
上面的例子向我們提示了一個(gè)潛在的編程隱患。在大端模式下,一個(gè)字的高地址放的是數(shù)據(jù)的低位,而在小端模式下,數(shù)據(jù)的低位放在內(nèi)存中的低地址。要小心對(duì)待存儲(chǔ)器中一個(gè)字內(nèi)字節(jié)的順序。
評(píng)論