完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
80C166的基本设计故意偏向于允许像C这样的结构化语言比在较老的CPU上更高效地运行。
最有用的指令集功能之一是提供16个额外的堆栈指针。 这些是MOV[Ri+]的结果,mem指令非常适合创建本地堆栈。 在正常情况下,C166只使用16个潜在堆栈指针(即通用寄存器)中的一个,即R0。 R0创建的堆栈放置在NDATA中名为?C_USERSTACK的特殊部分中。 C166将R0作为用户堆栈指针的“用户堆栈”用于参数传递和局部自动变量。 调用函数时,任何无法装入寄存器的变量或其他数据都会被MOV[R0-]参数指令“推入”用户堆栈。 “R0-”使R0指向用户堆栈上的下一个空闲位置。 一旦进入被调用的函数,参数就会被反向指令MOV REG[R0+]移出用户堆栈。 请注意,R0+移动用户堆栈点。 与真正的系统堆栈指针SP一样,每个MOV[R0-],xxx都与MOV xxx[R0+]匹配,因此用户堆栈指针在函数调用后始终恢复到其原始值。
|
|
|
|
只有小组成员才能发言,加入小组>>
5758 浏览 5 评论
ARM9学习4-S3C2410的启动代码分析-For ADSv1.2
2853 浏览 0 评论
512浏览 1评论
455浏览 1评论
440浏览 0评论
安装适用于STMicroelectronics Edition 1.1版的Keil MDK应用说明
273浏览 0评论
509浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 02:53 , Processed in 0.584441 second(s), Total 73, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号