. text 
. global _start
_start:  @使能GPIOE的外设时钟  RCC_MP_AHB4ENSETR的第[ 4 ] 设置为1 即可使能GPIOE时钟
@LED1
LDR R0, = 0X50000A28    @指定寄存器地址
LDR R1, [ R0]   @将寄存器原来的数值读取出来,保存到R1中
ORR R1, R1, #( 0x3 << 4 )    @将第4 位设置为1 
STR R1, [ R0]   @将修改后的数值写回@设置PE10为输出  将GPIOE_MODER[ 21 : 20 ] 设置为01 ,就能够让PE10为输出工作模式
@LED1 
LDR R0, = 0X50006000    @指定寄存器地址
LDR R1, [ R0]   @将寄存器原来的数值读取出来,保存到R1中
BIC R1, R1, #( 0x3 << 20 )    @将第21 : 20 清0 
ORR R1, R1, #( 0x1 << 20 )    @将第21 : 20 设置为01 
STR R1, [ R0]   @将修改后的数值写回
@LED2
LDR R2, = 0X50007000 
LDR R3, [ R2] 
BIC R3, R3, #( 0X3 << 20 ) 
ORR R3, R3, #( 0X1 << 20 ) 
STR R3, [ R2] 
@LED3
LDR R4, = 0X50006000    @指定寄存器地址
LDR R5, [ R4]   @将寄存器原来的数值读取出来,保存到R1中
BIC R5, R5, #( 0x3 << 16 )    @将第16 - 17 清0 
ORR R5, R5, #( 0x1 << 16 )    @将第16 - 17 设置为01 
STR R5, [ R4]   @将修改后的数值写回@设置PE10为推完输出  将GPIOE_OTYPER寄存器[ 10 ] 设置为0 ,就能够让PE10以推挽输出模式进行工作
@LED1
LDR R0, = 0X50006004    @指定寄存器地址
LDR R1, [ R0]   @将寄存器原来的数值读取出来,保存到R1中
BIC R1, R1, #( 0x1 << 10 )    @将第10 清0 
STR R1, [ R0]   @将修改后的数值写回
@LED2
LDR R2, = 0X50007004    @指定寄存器地址
LDR R3, [ R2]   @将寄存器原来的数值读取出来,保存到R1中
BIC R3, R3, #( 0x1 << 10 )    @将第10 清0 
STR R3, [ R2]   @将修改后的数值写回
@LED3
LDR R4, = 0X50006004    @指定寄存器地址
LDR R5, [ R4]   @将寄存器原来的数值读取出来,保存到R1中
BIC R5, R5, #( 0x1 << 2 )    @将第10 清0 
STR R5, [ R4]   @将修改后的数值写回@设置PE10为低速输出
@LED1
LDR R0, = 0X50006008    @指定寄存器地址
LDR R1, [ R0]   @将寄存器原来的数值读取出来,保存到R1中
BIC R1, R1, #( 0x3 << 20 )    @将第21 : 20 清0 
STR R1, [ R0]   @将修改后的数值写回
@LED2
LDR R2, = 0X50007008    @指定寄存器地址
LDR R3, [ R2]   @将寄存器原来的数值读取出来,保存到R1中
BIC R3, R3, #( 0x3 << 20 )    @将第21 : 20 清0 
STR R3, [ R2]   @将修改后的数值写回
@LED3
LDR R4, = 0X50006008    @指定寄存器地址
LDR R5, [ R4]   @将寄存器原来的数值读取出来,保存到R1中
BIC R5, R5, #( 0x3 << 16 )    @将第21 : 20 清0 
STR R5, [ R4]   @将修改后的数值写回@设置无上拉下拉电阻 
@LED1
LDR R0, = 0X5000600C    @指定寄存器地址
LDR R1, [ R0]   @将寄存器原来的数值读取出来,保存到R1中
BIC R1, R1, #( 0x3 << 20 )    @将第21 : 20 清0 
STR R1, [ R0]   @将修改后的数值写回
@LED2
LDR R2, = 0X5000700C    @指定寄存器地址
LDR R3, [ R2]   @将寄存器原来的数值读取出来,保存到R1中
BIC R3, R3, #( 0x3 << 20 )    @将第21 : 20 清0 
STR R3, [ R2]   @将修改后的数值写回
@LED3
LDR R4, = 0X5000600C    @指定寄存器地址
LDR R5, [ R4]   @将寄存器原来的数值读取出来,保存到R1中
BIC R5, R5, #( 0x3 << 20 )    @将第21 : 20 清0 
STR R5, [ R4]   @将修改后的数值写回loop: BL LED3_OFFBL LED1_ONBL DELAYBL LED1_OFFBL LED2_ONBL DELAYBL LED2_OFFBL LED3_ONBL DELAYb loopLED1_ON: LDR R0, = 0X50006014    @指定寄存器地址LDR R1, [ R0]   @将寄存器原来的数值读取出来,保存到R1中ORR R1, R1, #( 0x1 << 10 )    @将第10 设置为1 STR R1, [ R0]   @将修改后的数值写回 MOV PC, LR
LED1_OFF: LDR R0, = 0X50006014    @指定寄存器地址LDR R1, [ R0]   @将寄存器原来的数值读取出来,保存到R1中BIC R1, R1, #( 0x1 << 10 )    @将第10 设置为0 STR R1, [ R0]   @将修改后的数值写回MOV PC, LRLED2_ON: LDR R0, = 0X50007014    @指定寄存器地址LDR R1, [ R0]   @将寄存器原来的数值读取出来,保存到R1中ORR R1, R1, #( 0x1 << 10 )    @将第10 设置为1 STR R1, [ R0]   @将修改后的数值写回 MOV PC, LRLED2_OFF: LDR R0, = 0X50007014    @指定寄存器地址LDR R1, [ R0]   @将寄存器原来的数值读取出来,保存到R1中BIC R1, R1, #( 0x1 << 10 )    @将第10 设置为0 STR R1, [ R0]   @将修改后的数值写回MOV PC, LRLED3_ON: LDR R0, = 0X50006014    @指定寄存器地址LDR R1, [ R0]   @将寄存器原来的数值读取出来,保存到R1中ORR R1, R1, #( 0x1 << 8 )    @将第10 设置为1 STR R1, [ R0]   @将修改后的数值写回 MOV PC, LRLED3_OFF: LDR R0, = 0X50006014    @指定寄存器地址LDR R1, [ R0]   @将寄存器原来的数值读取出来,保存到R1中BIC R1, R1, #( 0x1 << 8 )    @将第10 设置为0 STR R1, [ R0]   @将修改后的数值写回MOV PC, LRDELAY: LDR R3, = 0x10000000 
MM: CMP R3, #0 SUBNE R3, R3, #1 BNE MMMOV PC, LR. end