2025年如何读取单片机程序源码(如何读取单片机程序源码数据)

如何读取单片机程序源码(如何读取单片机程序源码数据)带 LR 的跳转 LOAD 读内存 STORE 写内存 栈是一种具有特殊的访问方式的存储空间 他的特殊性就在于最后一个进入这个空间的数据 是最先出去的 空栈 Empty 栈指针指向的地址是空的 在栈中存储数据时 可以直接存储 存储完成之后需要将栈指针再次指向空的位置 满栈 Full 栈指针指向的地址有数据 在栈中存储数据时 需要先将栈指针 指向一个空的位置 然后在存储数据

大家好,我是讯享网,很高兴认识大家。




讯享网


讯享网

讯享网

带LR的跳转

讯享网

LOAD /读内存

STORE/写内存

栈是一种具有特殊的访问方式的存储空间,他的特殊性就在于最后一个进入这个空间的数据,是最先出去的

空栈(Empty)

栈指针指向的地址是空的,在栈中存储数据时,可以直接存储,存储完成之后需要将栈指针再次指向空的位置。

满栈(Full)

栈指针指向的地址有数据,在栈中存储数据时,需要先将栈指针,指向一个空的位置,然后在存储数据。

增栈(Ascending)

栈指针向高地址方向移动

减栈(Descending)

栈指针向低地址方向移动

空增栈,空减栈

满增栈,满减栈

ARM默认采用的是满减栈

来一个数据,栈指针先移动,再放数据。指针的移动是地址的降低

栈的基本操作

栈有两种基本的操作:入栈和出栈

1.入栈:将一个新的元素放到栈顶

2.出栈:从栈顶取出一个元素

栈顶元素总是最后一个入栈的,需要出的时候,又会是第一个被取出的

操作规则:LIFO (Last in first out)后进先出

1.主程序给R1,R2,R3,R4分别存入:0x 0x 0x 0x

然后跳入函数JUMP

2.函数JUMP,函数内修改R1为0x R3为0x00000000

3.修改结束后返回主函数继续跑

4.主函数再使R1和R3相加后存入R1

5.跳出主程序进入死循环

子程序返回主程序时,不可以使用MOV指令和B BL BX BXL

-栈的应用-》叶子函数的调用过程

叶子函数是指一个函数内部没有调用其他函数的函数,也就是说,它是程序调用树的末端节点,不依赖于其他函数。

讯享网 

-栈的应用-》非叶子函数的调用过程

非叶子函数是指一个函数内部调用了其他函数的函数,也就是说,它不是程序调用树的末端节点,可以被其他函数调用。

 


小讯
上一篇 2025-05-25 16:58
下一篇 2025-04-25 16:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/162282.html