20: RCC->APB2ENR|=1<<2; //使能PORTA时钟
0x08000564 4816 LDR r0,[pc,#88] ; @0x080005C0 ;PC是什么呢?
0x08000566 6980 LDR r0,[r0,#0x18]
读取 寄存器 RCC->APB2ENR 的值
0x08000568 F0400004 ORR r0,r0,#0x04
运算 寄存器值|=0x04
0x0800056C 4914 LDR r1,[pc,#80] ; @0x080005C0
0x0800056E 6188 STR r0,[r1,#0x18]
存入新值
21: RCC->APB2ENR|=1<<5; //使能PORTD时钟
22:
0x08000570 4608 MOV r0,r1
0x08000572 6980 LDR r0,[r0,#0x18]
读取 寄存器 RCC->APB2ENR 的值
0x08000574 F0400020 ORR r0,r0,#0x20 ;为什么这里是这样呢? 不是 ORR R0 ,R0,#0A
运算 寄存器值|=0x20 , 1<<5 = 0x20
0x08000578 6188 STR r0,[r1,#0x18]
存入新值
整个过程就是读寄存器值 ,运算,写入 的过程,貌似楼主没有开优化
|