完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
***指令与伪指令:
指令:CPU机器指令的助记符,经过编译后得到一串10组成的机器码,可以被CPU直接读取执行。伪指令:编译器环境提供,用来指导编译过程,最终不会生成机器码。 ***LDR/STR架构: CPU不能直接对内存的内容进行操作,必须借助CPU的特殊寄存器对内存进行加载处理。ldr指令将内存内容加载到通用寄存器,str将寄存器的内容加载至内存。 ***指令后缀: 常用的后缀名: B 功能不变,操作长度变为8位; H 功能不变,操作长度变为16位; S 功能不变,操作数变为有符号; S(S标志) 功能不变,影响CPSR标志位。 ***跳转指令: b:直接跳转; bl:跳转前将返回的地址放入lr之中,以便于返回,函数的调用; ***C语言的调用: C语言的运行需要一定的条件,这些条件由汇编来完成。 C语言的局部变量设置在栈上,如果C语言的局部变量落空,则程序就会跑空。 在单片机程序之中,硬件为其提供了一个默认可用的栈,在编译器gcc中,在链接时自动会添加一个头,这个头由汇编编写,引导C语言的实现。ARM 之中有37个寄存器,每一个模式之下都有自己独立的sp寄存器。找到自己模式下的栈,系统在复位后默认进入SVC模式,先把模式设置为SVC,再直接操作SVC。复位之后,外部的DRAM尚未初始化,目前可用的只有内部的SRAM,因此我们从SRAM设置栈。栈:满减栈, 满增栈 空减栈 空增栈 |
|
|
|
只有小组成员才能发言,加入小组>>
2510 浏览 0 评论
1079浏览 2评论
694浏览 1评论
450浏览 0评论
190浏览 0评论
321浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 12:37 , Processed in 1.275267 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号