在操作寄存器时,遇到概念上的理解问题。混淆了内存地址与内存空间
首先,读懂指令
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位的内存空间为一个单元。