1樓:匿名使用者
stmib r4!,
stm為批量儲存資料指令,後面的ib: 每次傳送前地址加4;所以r5,r6,r7中的內容是不改變的。現在來看!
號,這個表示是否更新暫存器r4。所以每傳送一次之前r4就+4;pc是不變的,不要將pc與sp的功能混淆。
ldmia r4!,
有了上面的理解,這個就簡單了。原理是一樣的,ldmia r4!,ia表示每次傳送後地址加4;由於從地址0x6000開始地址裡面儲存的資料沒告訴,所以r5,r6,r7的值是不確定的。
r4沒次傳送後+4;pc的值現在不好確定,如果這句彙編是與上一句的下一句,怎+4;如果只是單獨理解,也不變。
注意,以上都是針對arm狀態來說的,如果是thumb狀態,改為+2!
可以除錯一下看看,是不是這樣。
2樓:作業
今天也做到這個題了。。
首先要注意的是題目不是平常的入棧和出棧,因為地址一直走向增大的方向,如果換成ib和da就是先增加後減少。
其次語句遞增堆疊入棧時rn由小到大存入,出棧時由大到小彈出,不然解釋不清楚課本p41上面的遞減棧操作。。
從而遞增堆疊的stmib入棧(與s***a相同)暫存器從小到大存入
和遞減堆疊的ldmia出棧(與ldmfd相同)仍然是按照從小到大順序取出
所以題目第二語句的出棧應該從r5開始,沿著0x600c一路取值,很顯然除了r5,這些值都不確定,只能用[]取地址下的內容。
pc就加2*4好了。
嵌入式,嵌入式系統軟體開發,嵌入式應用軟體開發的定義分別是什麼?及其區別
無奈嘆水東流 嵌入式系統以應用為中心 以計算機技術為基礎 軟硬體可裁剪 功能 可靠性 成本 體積 功耗嚴格要求的專用計算機系統。參考 http 嵌入式系統是一種專用的計算機系統,是相對於我們普通的筆記本 桌上型電腦這些通用計算機系統而言的。基於以上理解,我用我的理解回答你的問題。嵌入式 是一種專用的...
嵌入式linux書籍,求嵌入式經典書籍
其實我挺想推薦unix環境高階程式設計的.這書很好的orz.建議先學學 鳥哥的linux私房菜 可以先來一本基礎的 硬體較多的 瞭解arm架構 arm嵌入式系統基礎教程2版 再來一本高一點,怎麼用硬體實現功能 嵌入式linux應用程式開發 如果還想深入點,再找一本linux 與 gnu 方面的,瞭解...
嵌入式應該怎麼學習?嵌入式需要學習什麼
嵌入式需要學習什麼 嵌入式本來就分硬體及軟體,你現在已經在做硬體了,不就已經是嵌入式?你是想說想做嵌入式軟體嗎?會用c編微控制器的程式,加上有硬體知識背景,差不多已經可以了喲,當然,如果你想做得更復雜一些,學學嵌入式的作業系統吧,簡單的方式就是買乙個開發板自學,當然,如果你能找到一家公司要你,那麼在有...