流水灯
.text
.global _start
_start: @1.设置GPIOE寄存器的时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000a28LDR R0,=0X50000A28LDR R1,[R0] @从r0为起始地址的4字节数据取出放在R1ORR R1,R1,#(0x1<<4) @第4位设置为1STR R1,[R0] @写回@2.设置PE10管脚为输出模式 GPIOE_MODER[21:20]->01 0x50006000LDR R0,=0x50006000LDR R1,[R0]BIC R1,R1,#(0x3<<20)@[21L20]清0ORR R1,R1,#(0X1<<20) @设置STR R1,[R0] @3.设置PE10管脚为推挽输出 GPIOE_OTYPER[10]->0 0X50006004LDR R0,=0X50006004LDR R1,[R0]BIC R1,R1,#(0X1<<10)STR R1,[R0] @4.设置PE10管脚为低速输出 GPIOE_OSPEEDR[21:20]->00 0X50006008LDR R0,=0x50006008LDR R1,[R0]BIC R1,R1,#(0x3<<20)@[21L20]清0STR R1,[R0] @5.设置PE10管脚输出时没有上拉下拉电阻 GPIOE_PUPDR[21:20]->00 0X5000600CLDR R0,=0x5000600cLDR R1,[R0]BIC R1,R1,#(0x3<<20)@[21L20]清0STR R1,[R0]@2.设置PE8管脚为输出模式 GPIOE_MODER[21:20]->01 0x50006000LDR R0,=0x50006000LDR R1,[R0]BIC R1,R1,#(0x3<<16)@[21L20]清0ORR R1,R1,#(0X1<<16) @设置STR R1,[R0] @3.设置PE8管脚为推挽输出 GPIOE_OTYPER[10]->0 0X50006004LDR R0,=0X50006004LDR R1,[R0]BIC R1,R1,#(0X1<<8)STR R1,[R0] @4.设置PE8管脚为低速输出 GPIOE_OSPEEDR[21:20]->00 0X50006008LDR R0,=0x50006008LDR R1,[R0]BIC R1,R1,#(0x3<<16)@[21L20]清0STR R1,[R0] @5.设置PE8管脚输出时没有上拉下拉电阻 GPIOE_PUPDR[21:20]->00 0X5000600CLDR R0,=0x5000600cLDR R1,[R0]BIC R1,R1,#(0x3<<16)@[21L20]清0STR R1,[R0] @1.设置GPIOF寄存器的时钟使能 RCC_MP_AHB4ENSETR[5]->1 0x50000a28LDR R0,=0X50000A28LDR R1,[R0] @从r0为起始地址的4字节数据取出放在R1ORR R1,R1,#(0x1<<5) @第4位设置为1STR R1,[R0] @写回@2.设置PF10管脚为输出模式 GPIOE_MODER[21:20]->01 0x50007000LDR R0,=0x50007000LDR R1,[R0]BIC R1,R1,#(0x3<<20)@[21L20]清0ORR R1,R1,#(0X1<<20) @设置STR R1,[R0] @3.设置PF10管脚为推挽输出 GPIOE_OTYPER[10]->0 0X50007004LDR R0,=0X50007004LDR R1,[R0]BIC R1,R1,#(0X1<<10)STR R1,[R0] @4.设置PF10管脚为低速输出 GPIOE_OSPEEDR[21:20]->00 0X50007008LDR R0,=0x50007008LDR R1,[R0]BIC R1,R1,#(0x3<<20)@[21L20]清0STR R1,[R0] @5.设置PF10管脚输出时没有上拉下拉电阻 GPIOE_PUPDR[21:20]->00 0X5000700CLDR R0,=0x5000700cLDR R1,[R0]BIC R1,R1,#(0x3<<20)@[21L20]清0STR R1,[R0]@ 6.PE10输出高低电平 GPIOE_ODR[10]->1(高电平) 0(低电平) 0X50006014
@LED1亮灭交替
loop:@亮LDR R0,=0X50006014LDR R1,[R0]ORR R1,R1,#(0x1<<10)STR R1,[R0]BL delay@灭LDR R0,=0X50006014LDR R1,[R0]BIC R1,R1,#(0x1<<10)STR R1,[R0]BL delay@LED2亮灭交替@亮LDR R0,=0X50007014LDR R1,[R0]ORR R1,R1,#(0x1<<10)STR R1,[R0]BL delay@灭LDR R0,=0X50007014LDR R1,[R0]BIC R1,R1,#(0x1<<10)STR R1,[R0]BL delay@LED3亮灭交替@亮LDR R0,=0X50006014LDR R1,[R0]ORR R1,R1,#(0x1<<8)STR R1,[R0]BL delay@灭LDR R0,=0X50006014LDR R1,[R0]BIC R1,R1,#(0x1<<8)STR R1,[R0]BL delayb loop@封装延时函数delay:LDR R4,=0X10000000
mm:cmp r4,#0subne r4,r4,#1bne mmmov pc,lr @程序返回.end