国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > ARM中非對其的存儲訪問操作

ARM中非對其的存儲訪問操作 時間:2018-09-29      來源:未知

在ARM處理器中,如果數(shù)據(jù)或指令是2字節(jié)的那么其在存儲器中的存儲要是半字對其的(存儲的起始地址的低一位是0b0),即存儲的首地址必須是2的整數(shù)倍。如果數(shù)據(jù)或指令是4字節(jié)的那么該數(shù)據(jù)或指令在存儲器中的存儲是字對其的(存儲的起始地址的低兩位都是0b00),即存儲的首地址必須是4的整數(shù)倍。我們在訪問存儲器的時候,如果存儲單元的地址沒有按照上述規(guī)則對其,則稱為非對齊的存儲訪問操作。

 

1. 非對齊的指令讀取操作

當處理器在執(zhí)行ARM指令的時候,ARM指令每條指令是4字節(jié)的寬度,所以對于ARM指令在存儲器當中的存儲是按照字對齊的方式來存儲的。我們在讀取一條ARM指令時如果寫入到PC寄存器的值不是字對其的(PC的后兩位不是0b00),那么指令執(zhí)行的結(jié)果可能是不可預(yù)知的,或者寄存器PC中不管低的兩位是什么值,寄存器PC中的地址值被送入到存儲系統(tǒng)后,存儲系統(tǒng)都會將其低兩位的值忽略,即認為低兩位是0b00。

 

2. 非對齊的數(shù)據(jù)訪問操作

當ARM處理器進行對內(nèi)存的讀寫操作時,如果所要操作的數(shù)據(jù)在內(nèi)存中是非對齊的,則有可能出現(xiàn)以下兩種運行結(jié)果:

(1) 執(zhí)行的結(jié)果不可預(yù)知

(2) 當操作的數(shù)據(jù)是字類型的時,忽略地址中低兩位的值,即訪問地址為指定的地址與0xFFFFFFFC相與的結(jié)果(Address & 0xFFFFFFFC);當操作的數(shù)據(jù)是半字類型的時,忽略地址中低一位的值,即訪問地址為指定的地址與0xFFFFFFFE相與的結(jié)果(Address & 0xFFFFFFFE)。這種操作是由存儲系統(tǒng)來完成的,地址值并不會在CPU內(nèi)發(fā)生變化。

注:當發(fā)生非對其數(shù)據(jù)訪問時,到底采用以上哪種方式去處理,是由當前所使用的指令所決定的。

上一篇:利用微信硬件平臺控制LED燈

下一篇:Linux中斷子系統(tǒng)的初始化

熱點文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部