深入RTOS(2):极简ARM架构与汇编

1.掌握八条汇编指令即可

读内存loadLDR  R0, [addrA]
写内存storeSTR  R0, [addrA]
ADD  R0, R1, R2
SUB  R0, R1, R2
比较CMP  R0, R1
跳转B / BL
入栈PUSH  {R3, LR}
出栈POP  {R3, R1}

汇编指令介绍:

读指令:LDR  R0, [addrA]                 
该指令存在flash中,LDR是load register的意思,CPU从[addrA]把它存的内容加载到R0寄存器

写指令:STR  R0, [addrA]
该指令也存在flash中,STR是store register的意思,CPU把R0中的值存到[addrA]上

加法指令:ADD  R0, R1, R2
CPU将从寄存器R1和R2中分别读取值,将它们相加,并将结果存储到寄存器R0中

入栈指令:PUSH  {R3, LR}
CPU将从寄存器R3和链接寄存器LR中分别读取值,并将它们压入堆栈中;具体压入栈哪个位置,由R13(也就是SP)指定;注意PUSH大括号中的寄存器顺序随便写都行

2.ARM架构

举个例子说明如何实现a = a+b?该函数在ARM架构中是如何实现的?

R13:SP栈顶;

R14:LR返回地址;

R15:PC当前执行位置;

RAM:读写数据;

FLASH:存代码,告诉CPU这个“四肢发达,头脑简单”的傻大个该干嘛;

第一,CPU读Flash得到指令;

第二,执行指令;

第三,读a,b;

第四,写入新的a;

参考链接

01_任务的引入_ARM架构_汇编简明教程_哔哩哔哩_bilibili

RTOS(3)极简ARM架构与汇编-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值