arm汇编学习
学习单片机中遇到的知识点
奋斗的少年yyds
这个作者很懒,什么都没留下…
展开
-
使用keil反汇编时的记录
IMPORT后面跟随函数名或变量名,作用相当于C中的extern关键字,指出这些全局符号是在其它源文件中定义的。跳转到系统初始化时,使用BLX ,其后只能用寄存器,注意事项见下方。,表示本程序里面用到的变量提供给其他模块调用的。原创 2023-09-30 10:39:01 · 101 阅读 · 0 评论 -
LR寄存器
如果lr寄存器被错误地修改,程序就可能会跳转到错误的地址,导致程序崩溃或出现其他不可预见的结果。因此,在编写ARM汇编程序并使用函数调用时,程序员必须小心操作,保证lr寄存器的正确使用。当程序调用一个函数时,lr寄存器会被用来存储下一个指令的地址,也就是函数返回时要返回的地址。当函数执行完毕时,程序将会从lr寄存器中获取返回地址,并跳转到该地址继续执行。lr寄存器是ARM架构中一种特殊的寄存器,它是Link Register的缩写,也被称为返回地址寄存器。lr寄存器通常用于存储函数返回时的返回地址。原创 2023-04-25 21:36:19 · 1723 阅读 · 0 评论 -
堆和栈的区别
堆(Heap)和栈(Stack)是计算机内存中的两种不同的数据结构,主要的区别在于它们在内存中分配和管理内存的方式不同。- 分配方式:栈分配内存的方式是先进后出,从栈顶端分配内存。堆分配内存的方式是由程序员通过动态分配内存的方式进行分配和释放。- 管理方式:栈由操作系统自动分配和释放,程序无法对其进行控制,内存的生命周期也受限于函数的执行。堆由程序员自主分配和释放,生命周期由程序员自己决定。- 内存分配:栈分配内存的大小有限制,通常在函数调用的时候分配;堆分配内存的大小通常比较灵活,可以动态调整。- 存储内原创 2023-04-23 18:24:55 · 268 阅读 · 0 评论