2023/12/21作业

思维导图

代码

.text

.global _start

_start:

@灯1

@gpio时钟使能 4->1 0x5000A28

LDR R0,=0x50000A28 @指定寄存器地址

LDR R1,R0@将寄存器取出放到R1

ORR R1,R1,#(0x1<<4)@将第四位设置为1

STR R1,R0@读取R0寄存器到R1

@PE10为输出 21:20->01 0x50006000

LDR R0,=0X50006000

LDR R1,R0

BIC R1,R1,#(0x3<<20)

ORR R1,R1,#(0x1<<20)

STR R1,R0

@PE10为推挽输出10->0 0x50006004

LDR R0,=0X50006004

LDR R1,R0

BIC R1,R1,#(0x1<<10)

STR R1,R0

@PE10为低速输出 21:20->00 0x5006008

LDR R0,=0X50006008

LDR R1,R0

BIC R1,R1,#(0x3<<20)

STR R1,R0

@PE10为无上下拉电阻 21:20->00 0x500600c

LDR R0,=0X5000600c

LDR R1,R0

BIC R1,R1,#(0x3<<20)

STR R1,R0

@灯2

@gpio时钟使能 4->1 0x5000A28

LDR R0,=0x50000A28 @指定寄存器地址

LDR R1,R0@将寄存器取出放到R1

ORR R1,R1,#(0x1<<5)@将第五位设置为1

STR R1,R0@读取R0寄存器到R1

@PE10为输出 21:20->01 0x50007000

LDR R0,=0X50007000

LDR R1,R0

BIC R1,R1,#(0x3<<20)

ORR R1,R1,#(0x1<<20)

STR R1,R0

@PE10为推挽输出10->0 0x50007004

LDR R0,=0X50007004

LDR R1,R0

BIC R1,R1,#(0x1<<10)

STR R1,R0

@PE10为低速输出 21:20->00 0x5007008

LDR R0,=0X50007008

LDR R1,R0

BIC R1,R1,#(0x3<<20)

STR R1,R0

@PE10为无上下拉电阻 21:20->00 0x500700c

LDR R0,=0X5000700c

LDR R1,R0

BIC R1,R1,#(0x3<<20)

STR R1,R0

@灯3

@gpio时钟使能 4->1 0x5000A28

LDR R0,=0x50000A28 @指定寄存器地址

LDR R1,R0@将寄存器取出放到R1

ORR R1,R1,#(0x1<<4)@将第四位设置为1

STR R1,R0@读取R0寄存器到R1

@PE10为输出 17:16->01 0x50006000

LDR R0,=0X50006000

LDR R1,R0

BIC R1,R1,#(0x3<<16)

ORR R1,R1,#(0x1<<16)

STR R1,R0

@PE10为推挽输出8->0 0x50006004

LDR R0,=0X50006004

LDR R1,R0

BIC R1,R1,#(0x1<<8)

STR R1,R0

@PE10为低速输出 17:16->00 0x5006008

LDR R0,=0X50006008

LDR R1,R0

BIC R1,R1,#(0x3<<16)

STR R1,R0

@PE10为无上下拉电阻 17:16->00 0x500600c

LDR R0,=0X5000600c

LDR R1,R0

BIC R1,R1,#(0x3<<16)

STR R1,R0

flash:

bl led1_on

bl delay

bl led1_off

bl delay

bl led2_on

bl delay

bl led2_off

bl delay

bl led3_on

bl delay

bl led3_off

bl delay

bl led1_on

bl led2_on

bl led3_on

bl delay

bl led1_off

bl led2_off

bl led3_off

bl delay

b flash

@led1

led1_on:

@gpio10->1 0x50006014

LDR R0,=0X50006014

LDR R1,R0

ORR R1,R1,#(0x1<<10)

STR R1,R0

MOV PC,LR

led1_off:

@gpio10->0 0x50006014

LDR R0,=0X50006014

LDR R1,R0

BIC R1,R1,#(0x1<<10)

STR R1,R0

MOV PC,LR

@led2

led2_on:

@gpio10->1 0x50007014

LDR R0,=0X50007014

LDR R1,R0

ORR R1,R1,#(0x1<<10)

STR R1,R0

MOV PC,LR

led2_off:

@gpio10->0 0x50007014

LDR R0,=0X50007014

LDR R1,R0

BIC R1,R1,#(0x1<<10)

STR R1,R0

MOV PC,LR

@led3

led3_on:

@gpio10->1 0x50006014

LDR R0,=0X50006014

LDR R1,R0

ORR R1,R1,#(0x1<<8)

STR R1,R0

MOV PC,LR

led3_off:

@gpio10->0 0x50006014

LDR R0,=0X50006014

LDR R1,R0

BIC R1,R1,#(0x1<<8)

STR R1,R0

MOV PC,LR

delay:

LDR R3,=0X10000000

mm:

cmp r3,#0

subne r3,r3,#1

bne mm

mov pc,lr

.end

相关推荐
一路往蓝-Anbo8 小时前
第三篇:ADC 与模拟前端
stm32·嵌入式硬件·嵌入式·硬件设计
iCxhust15 小时前
C#进程管理程序
开发语言·汇编·stm32·单片机·c#·微机原理
hhcgchpspk16 小时前
汇编语言传递数据和地址的误区
汇编·笔记·nasm·masm
iCxhust18 小时前
MTK8088单板机制作(一)时钟电路
汇编·单片机·嵌入式硬件·微机原理·8088单板机
iCxhust20 小时前
8086 汇编位测试使用方法
汇编·单片机·嵌入式硬件·微机原理·8088单板机
iCxhust20 小时前
用汇编在8088单板机上创建一个进程
汇编·微机原理
IAR Systems1 天前
在IAR工具链中使用overlay命令进行SMP多核工程TCM配置
arm开发·嵌入式·嵌入式开发·iar
2023自学中2 天前
Linux 内核与用户空间 内存管理详解(堆与栈篇)
linux·嵌入式·内存·开发板
AI科技星2 天前
第三卷:质数王朝志(全卷定稿)
c语言·开发语言·汇编·electron·概率论
阿泽·黑核2 天前
使用 C 语言结构体设计模块化按键检测
嵌入式·agent·模块化设计