![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
文章平均质量分 84
独孤九剑_Linux
坚定迈下每一步,跑赢昨天的自己
展开
-
【ARM】指令集简介
如果数据处理指令的第二个操作数是立即值,在指令中用 8 位立即值和 4 位循环移位来表示它,所以对大于 255 的立即值,汇编器尝试通过在指令中设置循环移位数量来表示它,如果不能表示则生成一个错误。除了概念上的第 33 位(就是被移出的最小的那位)之外丢弃移出最左端的高位,如果逻辑类指令中 S 位被设置了,则此位将成为从桶式移位器退出时进位标志的值。循环右移类似于逻辑右移,但是把从右侧移出去的位放置到左侧,如果逻辑类指令中 S 位被设置了,则同时放置到进位标志中,这就是位的‘循环’。对设置特定的位有用。原创 2024-06-22 15:52:20 · 229 阅读 · 0 评论 -
【ARM-Cortex-M3/4】汇编基础与常用指令集
令用于产生软中断,从而实现在用户模式变换到特权模式,CPSR保存到管理模式的SPSR 中,执行转移到SWI向量,在其它模式下也可使用SWI 指令,处理同样地切换到特权模式。恢复寄存器列表, 先出栈的数据(即原先最后入栈的r0)保存到r0, 最后出栈的数据(即原先最先入栈的r14)保存到r14。即C语言extern,指示编译器当前的符号不是在本源文件中定义的,而是在其他源文件中定义的,在本源文件中可能引用该符号。symbol 要保留的局部标号(若没有该项,除了基于寄存器处的所有符号将包含在目标文件的符号表)转载 2024-06-19 09:31:43 · 62 阅读 · 0 评论 -
【ARM Cortex-M 系列】 -- Cortex-M0, M3, M4, M7, M33, M35P 差异
Cortex-M0 是ARM公司推出的一款微控制器(MCU)核心。这个核心是基于ARMv6-M架构设计的,只支持 56 条指令的小指令集,大部分指令是 16 位指令, 是 ARM Cortex-M 系列中的入门级产品。Cortex-M0 的设计目标是提供一种低成本、低功耗的解决方案,适用于简单的微控制器应用。小型和低功耗:Cortex-M0 的硬件设计非常紧凑,消耗的功率也非常低,这使得它非常适合在功率和空间受限的应用中使用。简单的指令集:Cortex-M0 使用的是基于 Thumb 指令集的。转载 2024-06-16 16:41:51 · 12 阅读 · 0 评论 -
【ARM】STM32学习笔记:启动代码分析(Startup Code)
这种特点是由堆栈指针的移动方式决定的(先入栈的数据对应的指针值比较大,后入栈的数据对应的指针值比较小,而出栈时堆栈指针的值是递增的,所以指针值大的数据当然后出栈)。由于MDK中的汇编器(汇编编译器)用的是ARM的汇编器,所以可以从ARM官网下载汇编器的用户指南寻找关于伪指令的详细介绍,或者从MDK的“Help”中的汇编器用户指南中查找。在ARM汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。转载 2024-06-14 22:14:51 · 11 阅读 · 0 评论