在操作寄存器時,遇到概念上的理解問題。混淆了內存地址與內存空間
首先,讀懂指令
ldr r0,=0x11000c40 //0x11000c40是寄存器GPX2CON的地址,將這個地址寫入r0寄存器的空間 ldr r1,[r0] //將r0空間的地址所指向的4字節數據,讀入r1的內存空間,即r1儲存了0x11000c40地址所指向的四字節空間數據 bic r1,#0xf0000000 //將那四字節數據的高四位清零,即[31:28]->0000 orr r1,0x10000000 //[31:28] :0000 ---> 0001 str r1,[r0] //將r1里的數據存入r0存放的地址0x11000c40所指向的空間中
由上,可以知道內存地址只是一個編號,代表一個內存空間,就像你家的門牌號一樣,通過地址可以訪問到所指向的內存。那么這個內存空間是多大呢。在計算機中,存儲器的容量是以字節為基本單位,每個字節都有一個地址,每四個字節即32位的內存空間為一個單元。