2011-11-22 87 views
4

我想不通這個ARM指令做什麼:困惑的ARM指令

strd.w   r0, r1, [r2] 

我知道這是一個存儲指令,其在*r2存儲的東西,但我不完全知道是什麼。爲什麼有兩個源寄存器(r0r1)以及d.w後綴是什麼意思?

+0

谷歌搜索發現這一點: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

+2

而這裏的參考:http://infocenter.arm.com/幫助/ index.jsp的?主題=/com.arm.doc.dui0204j/CIHGCADB.html – onemasse

回答

8

該函數將兩個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