第一个led程序
汇编指令
- ldr: 读内存 ldr r0,[r1] 将r1所指向的地址包含的内容写入r0寄存器中
- str: 写内存 str r0,[r1] 将r0中的值存放到r1所指向的地址中
- b : 跳转
- mov:赋值
- ldr r0,=0x12345678 伪汇编代码(效果是一样的)
- add r0,r1,#4 >> r0=r1+4
- sub r0,r1,#4 >> r0=r1-4
- bl xxx: branch and link :跳转到xxx,并将返回地址保存在lr寄存器中
- ldm:读内存,存入多个寄存器(many)
- stm:把多个寄存器中的值写入内存
- stmdb sp!,{fp,ip,lr,pc} :高编号的寄存器存在高地址,先减后存
汇编代码
-
创建一个.S文件
.text
.global _start
_start:
/* 配置寄存器为输出*/
ldr r1,=0x56000050
ldr r0,=0x100
str r0,[r1]
/* 配置寄存器输出低电平*/
ldr r1,=0x56000054
ldr r0,=0
str r0,[r1]
/设置为死循环/
halt:
b halt
c语言代码
- 创建.S .c文件
.text
.global _start
_start:
/* 设置栈 sp*/
ldr sp,4096
/* 跳转到main函数*/
bl main
/* 死循环 * /
halt:
b halt