4
我想不通這個ARM指令做什麼:困惑的ARM指令
strd.w r0, r1, [r2]
我知道這是一個存儲指令,其在*r2
存儲的東西,但我不完全知道是什麼。爲什麼有兩個源寄存器(r0
和r1
)以及d.w
後綴是什麼意思?
我想不通這個ARM指令做什麼:困惑的ARM指令
strd.w r0, r1, [r2]
我知道這是一個存儲指令,其在*r2
存儲的東西,但我不完全知道是什麼。爲什麼有兩個源寄存器(r0
和r1
)以及d.w
後綴是什麼意思?
該函數將兩個32位寄存器的64位內容存儲到內存中。 8字節塊從r2
中保存的地址開始存儲。前四個字節來自r0
,來自r1
的第二個四字節。
大致相當於C將是:
int32 *ptr=(int32 *) r2;
*(ptr) = r0;
*(ptr+1) = r1; // 'ptr+1' adds four bytes to the memory position
谷歌搜索發現這一點:http://books.google.co.uk/books?id=mb5d_xeINZEC&pg=PA75&lpg=PA75&dq=%22strd.w%22&source= BL&OTS = kNhBZGIQc8與SIG = 11-i1pLOmH2W83r1MSAtWbrIUeA&HL = EN&EI = BfPLTrrFGYig8QOm8_wD&SA = X&OI = book_result和CT =導致與resnum = 4&VED = 0CEAQ6AEwAw#v = onepage&q =%22strd.w%22&F =假 – OrangeDog
而這裏的參考:http://infocenter.arm.com/幫助/ index.jsp的?主題=/com.arm.doc.dui0204j/CIHGCADB.html – onemasse