LDR指令
LDR{條件} 目的寄存器 <存儲器地址>
LDR R0,[R1] ;將存儲器地址為R1的字?jǐn)?shù)據(jù)讀入寄存器R0。LDR R0,[R1,R2] ;將存儲器地址為R1+R2的字?jǐn)?shù)據(jù)讀入寄存器R0。LDR R0,[R1,#8] ;將存儲器地址為R1+8的字?jǐn)?shù)據(jù)讀入寄存器R0。LDR R0,[R1],R2 ;將存儲器地址為R1的字?jǐn)?shù)據(jù)讀入寄存器R0,并將R1+R2的值存入R1。LDR R0,[R1],#8 ;將存儲器地址為R1的字?jǐn)?shù)據(jù)讀入寄存器R0,并將R1+8的值存入R1。LDR R0,[R1,R2]! ;將存儲器地址為R1+R2的字?jǐn)?shù)據(jù)讀入寄存器R0,并將R1+R2的值存入R1。LDR R0,[R1,LSL #3] ;將存儲器地址為R1*8的字?jǐn)?shù)據(jù)讀入寄存器R0。LDR R0,[R1,R2,LSL #2] ;將存儲器地址為R1+R2*4的字?jǐn)?shù)據(jù)讀入寄存器R0。LDR R0,[R1,,R2,LSL #2]??;將存儲器地址為R1+R2*4的字?jǐn)?shù)據(jù)讀入寄存器R0,并將R1+R2*4的值存入R1。LDR R0,[R1],R2,LSL #2 ;將存儲器地址為R1的字?jǐn)?shù)據(jù)讀入寄存器R0,并將R1+R2*4的值存入R1。LDR R0,Label ;Label為程序標(biāo)號,Label必須是當(dāng)前指令的-4~4KB范圍內(nèi)。
LDR Rd,[Rn],#0x04 ;這里Rd不允許是R15。
LDR R0,=0xff
//main.cint main(void){RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;GPIOB->CRL &= ~(0xf<<(1*4));GPIOB->CRL |= 0x2<<(1*4);GPIOB->ODR &= ~(1<<1);return 0;}//main.h
LDR r0,[r1] r0 = *r1STR r0,[r1] *r1 = r0MOV?r0,r1????r1->r0拷貝?
r0 = * 0x0800 017c
* 0x0800 017c=0x4002 1000
*0x4001 0c00 &= ~(0xf0)r1 = *0x4001 0c00*0x4001 0c00 &= ~(0xf0)
剩下的不再詳細(xì)分析,直接給答案?:
***0x4001 0c00 |= 0x200x4001 0c0c &= ~(0x02)*
-END-
來源 | STM32嵌入式開發(fā)
|?整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有?|
|?如有侵權(quán),請聯(lián)系刪除?|
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!






