ARM_汇编流水灯

.text .global _start_start: @设置GPIOE寄存器的时钟使能ldr r0,=0x50000A28ldr r1,[r0] @从r0为起始地址的4字节数据取出存入r1orr r1,r1,#(0x01<<4)@第4位设置为1 表示开启时钟使能orr r1,r1,#(0x01<<5)@第5位设置为1 表示开启时钟使能str r1,[r0] @写入@设置PE10的管脚为输出模式ldr r0 , =0x50006000ldr r1,[r0]bic r1,r1,#(0x03<<20) @清零orr r1,r1,#(0x01<<20) @01 输出模式str r1,[r0]ldr r0 , =0x50007000ldr r1,[r0]bic r1,r1,#(0x03<<20) @清零orr r1,r1,#(0x01<<20) @01 输出模式str r1,[r0]ldr r0 , =0x50006000ldr r1,[r0]bic r1,r1,#(0x03<<16) @清零orr r1,r1,#(0x01<<16) @01 输出模式str r1,[r0]@设置PE10的管脚为推挽输出ldr r0, = 0x50006004ldr r1,[r0]bic r1,r1,#(0x01<<10) @清零str r1,[r0]ldr r0, = 0x50007004ldr r1,[r0]bic r1,r1,#(0x01<<10) @清零str r1,[r0]ldr r0, = 0x50006004ldr r1,[r0]bic r1,r1,#(0x01<<8) @清零str r1,[r0]@设置PE10的管脚为底速模式ldr r0, = 0x50006008ldr r1,[r0]bic r1,r1,#(0x03<<20) @清零str r1,[r0]ldr r0, = 0x50007008ldr r1,[r0]bic r1,r1,#(0x03<<20) @清零str r1,[r0]ldr r0, = 0x50006008ldr r1,[r0]bic r1,r1,#(0x03<<16) @清零str r1,[r0]@设置PE10的管脚输出时没有上拉下拉电阻ldr r0, = 0x5000600Cldr r1,[r0]bic r1,r1,#(0x03<<20) @清零str r1,[r0]ldr r0, = 0x5000700Cldr r1,[r0]bic r1,r1,#(0x03<<20) @清零str r1,[r0]ldr r0, = 0x5000600Cldr r1,[r0]bic r1,r1,#(0x03<<16) @清零str r1,[r0]@PE10输出高低电平loop:@1亮ldr r0, = 0x50006014ldr r1,[r0]orr r1,r1,#(0x01<<10)str r1,[r0]bl dealy@1灭ldr r0, = 0x50006014ldr r1,[r0]bic r1,r1,#(0x01<<10)str r1,[r0]bl dealy@2亮ldr r0, = 0x50007014ldr r1,[r0]orr r1,r1,#(0x01<<10)str r1,[r0]bl dealy@2灭ldr r0, = 0x50007014ldr r1,[r0]bic r1,r1,#(0x01<<10)str r1,[r0]bl dealy@3亮ldr r0, = 0x50006014ldr r1,[r0]orr r1,r1,#(0x01<<8)str r1,[r0]bl dealy@3灭ldr r0, = 0x50006014ldr r1,[r0]bic r1,r1,#(0x01<<8)str r1,[r0]bl dealyb loopdealy:ldr r4,=0x10000000mm:cmp r4,#0subne r4,r4,#1bne mmmov pc,lr.end