指令STMFD和LDMFD分析;
根據(jù)ATPCS規(guī)則,我們一般使用FD(Full Descending)類型的數(shù)據(jù)棧!所以經(jīng)常使用的指令就有STMFD和LDMFD,
通過ARM對于棧操作和批量Load/Store指令尋址方式,可以知道指令STMFD和LDMFD的地址計算方法:
STMFD指令的尋址方式為事前遞減方式(DB)
而DB尋址方式實際內(nèi)存地址為:
start_address = Rn - (Number_Of_Set_Bits_In(register_list)*4)
end_address = Rn - 4
STM指令操作的偽代碼:
if ConditionPassed(cond) then
address = start_address
for i = 0 to 15
if register_list[i] == 1
Memory[address] = Ri
address = address + 4
有上面兩個偽代碼可以得出 STMFD SP!,{R0-R7,LR} 的偽代碼如下:
SP = SP - 9×4;
address = SP;
for i = 0 to 7
Memory[address] = Ri;
address = address + 4;
Memory[address] = LR;
LDMFD指令的尋址方式為事后遞增方式(IA)
IA內(nèi)存的實際地址的偽代碼
start_address = Rn
end_address = Rn + (Number_of_set_bits_in(register_list)*4) - 4
LDM指令操作的偽代碼(未考慮PC寄存器):
if ConditionPassed(cond) then
address = start_address
for i = 0 to 15
if register_list[i] == 1
Ri = Memory[address,4]
address = address + 4
所以LDMFD SP!,{R0-R7,PC}^ (;恢復(fù)現(xiàn)場,異常處理返回)偽代碼是:
address = SP;
for i = 0 to 7
Ri = Memory[address ,4]
address = address + 4;
SP = address;
LDMFD和STMFD
LDMFD和STMFD
其他人氣:928 ℃時間:2020-04-07 20:49:15
優(yōu)質(zhì)解答
我來回答
類似推薦
- 別沒事跟我屢條子,誰沒編過筐,啥意思啊
- 網(wǎng)絡(luò)用語 大神是什么意思
- 危言聳聽的危怎么解釋.
- 費叔叔有一只手表和一個鬧鐘,他發(fā)現(xiàn)鬧鐘每走一個小時,他的手表會多走30秒,但鬧鐘卻比標準時間每小時慢30秒.在今天中午12點費叔叔把手表和標準時間校準,那么明天中午12點時,費
- 概率論的題..已知100臺車床彼此獨立的工作.
- 初二的什么人能上初三的培優(yōu)班
- 小紅的體重比小寧重5kg,小寧的體重比小紅輕七分之一,小紅的體重是多少?
- the的發(fā)音規(guī)則 是在輔音還是在輔音字母前發(fā)“ z額” 比如the USA
- 初中語文和高中語文所教的內(nèi)容有什么不同?
- 化學計量在實驗中的應(yīng)用
- 3角8分是一元的( ),7厘米=( )【用分數(shù)表示】
- 翻譯 用木頭做門 是make the door of the wood 還是make the door from the wood
猜你喜歡
- 1We are having a wonderful life and Mum FEELS naturally part of it,
- 2關(guān)于吾腰千錢的問題
- 3日本最高的山是富士山嗎?高多少米阿?
- 4急求小學五年級上語文詞語手冊第14課和第15課日積月累當中的詞語
- 55x+6y=6,8x+9y=16
- 6高中英語語法與句型
- 7我想問一下一元一次不等式組解集表示問題,如果一個不等式組是a+2<5,a+3<10,那么在數(shù)軸上表示它的解集該如何表示?是只表示出最后解集a<3,還是把a<3 和a<7都標出來?還有一個問題,x+2<x-1是一元一次方程組嗎?
- 8問一句英語是否有問題
- 9中間變量值域法
- 10急求一篇以心靈的橋梁為主題的作文,不少于500字(原創(chuàng))
- 11It is difficult for a(foreign)_to learn Chinese
- 12圓的半徑是射線,直徑是直線._.(判斷對錯)