我正在研究ARM指令體系結構,並且我已經知道指令是以字對齊的方式存儲的,所以指令地址的最低有效位在ARM狀態下始終爲零。爲什麼不使用32位ARM指令地址的2個LSB
Thumb和Thumb-2指令長16或32位。指令存儲爲半字對齊,所以指令地址的最低有效位在Thumb狀態下始終爲零。
在我對AVR等不同微控制器的一些研究中,在訪問程序存儲器時,我使用最低有效位來區分要訪問的高字節或低字節。但那是關於數據存儲器訪問的。
在ARM中,指令無論如何都是32位,因此應該一次提取所有字節。
然後爲什麼最後兩位需要讀取指令的一個特定字節(Thumb模式下爲1位)並使用了存儲區。 PS:如果我要獲取4字節長指令的單個字節,則需要4個週期,效率非常低,那麼具有字節尋址能力的目的是什麼?是因爲新的THUMB類型指令哪些是16位寬,但仍佔用32位空間?
你不清楚你在尋求什麼解釋;你的前兩段是你的問題的答案! –
爲什麼他們在ARM或THUMB模式下都有銀行存取32/16位指令的單個字節。一條指令應該作爲一個完整的詞取代嗎? – Haswell
如果我要讀取4字節長指令的單個字節,則需要4個週期,效率非常低,因此具有字節尋址能力的目的是什麼?是因爲新的THUMB類型的指令是16位寬但仍佔用32位空間? – Haswell