历史上的今天
返回首页

历史上的今天

今天是:2024年12月08日(星期日)

正在发生

2021年12月08日 | ATmega88 堆栈指针

2021-12-08 来源:eefocus

堆栈指针主要用来保存临时数据、局部变量和中断/ 子程序的返回地址。堆栈指针总是指向堆栈的顶部。要注意AVR 的堆栈是向下生长的,即新数据推入堆栈时,堆栈指针的数值将减小。

堆栈指针指向数据SRAM 堆栈区。在此聚集了子程序堆栈和中断堆栈。ATmega88 在调用子程序和使能中断之前必须定义堆栈空间,且堆栈指针必须指向高于0xFF 的地址空间。使用PUSH指令将数据推入堆栈时指针减一;而子程序或中断返回地址推入堆栈时指针将减二。使用POP 指令将数据弹出堆栈时,堆栈指针加一;而用RET 或RETI 指令从子程序或中断返回时堆栈指针加二。

AVR的堆栈指针由I/O空间中的两个8位寄存器实现。实际使用的位数与具体器件有关。请注意某些AVR 器件的数据区太小,用SPL 就足够了。此时将不给出SPH 寄存器。


推荐阅读

史海拾趣

General Electronic Devices公司的发展小趣事
提供稳定的直流电压。
冠图电子(GTL-POWER)公司的发展小趣事
负责产生控制信号,驱动开关元件按一定频率和占空比工作。
Base Two (2) Systems公司的发展小趣事

Base Two (2) Systems深知技术创新的重要性,因此不断加大对研发的投入。公司引进了一批高端研发人才和先进设备,为研发团队提供了强有力的支持。在研发团队的努力下,公司不断推出新产品,并对现有产品进行升级改进,以满足市场的不断变化和客户的多样化需求。

Amidon Associates Inc公司的发展小趣事

Base Two (2) Systems公司自创立之初,便以技术创新为核心竞争力。在创始团队的带领下,公司研发团队不断攻克技术难关,成功研发出一系列具有领先水平的电子产品。这些产品不仅性能卓越,而且具有广泛的应用前景,为公司在市场上赢得了良好的口碑。

Bipolar Integrated Technology Inc公司的发展小趣事

在市场竞争日益激烈的情况下,BIT意识到只有不断创新才能在行业中立足。于是,他们加大了在研发方面的投入,不断推出具有创新性的产品。其中,一款高性能、低功耗的双极型处理器成为了市场上的热销产品,引领了行业潮流。

Auris公司的发展小趣事

Auris公司在技术研发方面取得了显著成果。其中,一款名为Auris Robotic Endoscopy System(ARES)的医疗机器人尤为引人注目。这款机器人能够通过精准的操控,帮助医生在不切口的情况下发现早期肺癌,提高了诊断的精确性。20XX年,食品与药品监督管理局(FDA)正式批准了ARES机器人的使用,这是对Auris公司技术实力和产品质量的高度认可。

问答坊 | AI 解惑

秀秀我做的时钟以及小问题求助

初学单片机不久,都是拿来主义,做了个时钟,感觉好看,发来给大家看看。同时有个小问题求助各位大侠:就是24C02保存我调节好的数字。用K1选择数码管并闪动,用K2调节从0到9变化,调完想要的数字后用K3按一下保存,在下次开机时就会显示这次调好的 ...…

查看全部问答>

ret = RegQueryValueEx(hKEY,TEXT("Name"),0,1,(PBYTE)&dwReg,MAX_PATH);这样用对吗?我想

ret   =   RegQueryValueEx(hKEY,TEXT(\"Name\"),0,1,(PBYTE)&dwReg,MAX_PATH);这样用对吗?我想从注册表中取了个字符串…

查看全部问答>

如何製作點陣字庫

大家好啊,我想問一下如何製作點陣字庫,因為看到字庫也有很多種格式,我需要的是$$$的…

查看全部问答>

最简单的驱动

写了一个最简单的LINUX,键盘驱动发现不能读硬件,不知道怎么在LINUX系统下获取读硬件的权限 char button_statusFetch(void) {         int i = 0;         int k = 0;        ...…

查看全部问答>

vs2005 pxa270

Microsoft ActiveSyn 4.5 Vs2005 wince 5.0 pxa270 如上。 我是要将vs2005的程序同步到pxa270的板子上进行调试。不知道是我设置的问题还是什么原因,vs2005的程序就是不能同步到板子上。 我在家用2440的板子,就可以。 sdk 是自己导出的,也 ...…

查看全部问答>

SDK问题~!~

为什么我装了SDK以后VS2005里还是看不出来呢?? 我用建立一个MFC的设备应用程序,里面就只有PPC和SMARTPHONE两个平台?? 我装的是STANDARD SDK!! 顺便问下,WINCE 的SDK多大??我是不是装错了?? 在线等~!~…

查看全部问答>

手机密码知识

本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 手机密码大全 三星解話機鎖:*2767*2878#/*2767*7377# 三星碼片復位:*2767*3855# 也可用于解機鎖或卡鎖 三星顯溫度、電池容量:*#0228# 三星調顯示屏對比度:*#0523# 三星軟件版本 ...…

查看全部问答>

用PLL做分频有必要吗?

学习板上的晶振是50M,AD是TLC549。我想把549采到的数通过led输出显示。程序如下:module amyad(clk,din,clk_ad,cs,dout);    input         clk;  //50MHz    input     &nb ...…

查看全部问答>

嵌入式C语言和通用C语言有什么区别?

 求教育。     [ 本帖最后由 范小川 于 2010-11-26 16:35 编辑 ]…

查看全部问答>