ARM微處理器的編程模型之:數(shù)據(jù)類型
3.1.3 存儲器大/小端
從軟件角度看,內(nèi)存相對于一個大的字節(jié)數(shù)組,其中每個數(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
上面的例子向我們提示了一個潛在的編程隱患。在大端模式下,一個字的高地址放的是數(shù)據(jù)的低位,而在小端模式下,數(shù)據(jù)的低位放在內(nèi)存中的低地址。要小心對待存儲器中一個字內(nèi)字節(jié)的順序。
評論