历史上的今天
返回首页

历史上的今天

今天是:2025年05月14日(星期三)

正在发生

2019年05月14日 | 51单片机--堆栈

2019-05-14 来源:eefocus

子程序或中断程序时保护现场,因为51单片机的寄存器是十分有限的,而相对来说普通数据存储器更充足,通过入栈将寄存器中的内容临时保存到堆栈中(普通数据存储器),这是一个用时间换取空间的编程方式。 

51单片机的堆栈是向上生长的,就是堆栈不为空时,栈底地址小于栈顶地址,当将数据入栈时,栈顶地址增加。还有一个技巧是,堆栈是数据存储器的一部分,也就是说堆栈除了利用push和pop访问,也可以通过普通的选址方法访问,例如mov。有时我们想访问堆栈数据,但不想改动变动栈顶,这时可以通过mov来访问数据。还有一个书上很少提到的知识点是出栈之后,原来那个栈顶的内容并不会清零,所以我们依然可以像对待普通数据存储器一样访问。 

下面通过教科书上的一个变成例子讲解一下堆栈:


初始状态

(A)=02H,(SP)=52H,(51H)=FFH,(52H)=FFH


POP DPH

POP DPL

    出栈两次,SP=SP-2=50H

MOV DPTR,#4000H

    (DPTR)=4000H

RL A

    (A)=04H

MOV B,A

    (B)=04h

MOVC A,@A+DPTR

    (A)=30H

PUSH Acc

    SP=SP+1=51H,(51H)=30H

MOV A,B

    (A)=04H

INC A

    (A)=05H

MOVC A,@A+DPTR

    (A)=50H

PUSH Acc

    SP=SP+1=52H,(52H)=05H

RET

    (PCH)=50H,(PCL)=30H,SP=SP-2=50H

ORG 4000H

DB 10H,80H,30H,50H,30H,50H



推荐阅读

史海拾趣

客益(Guestgood)公司的发展小趣事

机顶盒,全称为数字视频变换盒(Set Top Box,简称STB),是现代家庭娱乐中不可或缺的重要设备。它作为连接电视机与外部信号源的桥梁,主要功能在于接收数字电视信号,并将其转换成适合在电视机上播放的格式。机顶盒不仅能接收来自有线电缆、卫星天线、宽带网络及地面广播的信号,还具备强大的媒体处理能力和交互功能,极大地丰富了用户的观看体验。

从技术层面看,机顶盒经历了从模拟到数字的飞跃式发展。早期的机顶盒主要用于有线电视网络的信号解扰,而现代机顶盒则支持高清、甚至4K超高清视频内容的播放,为用户带来更为细腻的画面和震撼的音效。此外,机顶盒还集成了网络交互功能,用户可以通过机顶盒连接到互联网,享受在线购物、观看网络视频、玩游戏等多元化服务,使电视机从单向接收信息的设备转变为智能互动终端。

随着科技的进步,机顶盒的功能和应用场景也在不断扩展。例如,一些先进的机顶盒支持智能语音控制,用户可以通过语音指令搜索节目、调整设置,极大地提升了使用的便捷性。同时,机顶盒还具备存储功能,用户可以将喜欢的媒体文件存储在机顶盒中,随时通过电视屏幕进行观看,享受个性化的娱乐体验。

综上所述,机顶盒作为家庭娱乐的重要组成部分,不仅承载着传输和显示数字视频信号的基本功能,还通过不断的技术创新和应用拓展,为用户提供了更加丰富、便捷、智能的观影体验。随着技术的不断进步和市场的不断扩大,机顶盒将继续在家庭娱乐领域发挥重要作用。

Aearo Technologies公司的发展小趣事

在发展过程中,Aearo Technologies经历了一次重要的收购事件。3M公司看中了Aearo在能量控制领域的领先地位和技术实力,于XXXX年将其收购。收购后,Aearo Technologies成为了3M旗下的一家子公司,继续保留其品牌和技术优势。通过业务整合和资源共享,Aearo Technologies在3M的支持下实现了更快速的发展。

启臣微(Chip)公司的发展小趣事

随着公司业务的不断发展,启臣微开始积极拓展海外市场。公司在西安设立研发中心,在深圳和昆山设立销售中心,并与多家国际知名企业建立了合作关系。这些举措不仅提升了公司的国际影响力,也为公司带来了更多的发展机遇。

友盟(AP)公司的发展小趣事

友盟(AP)公司在电子行业的崛起,始于其坚持不懈的技术创新。在创立初期,友盟就敏锐地捕捉到了移动互联网快速发展的趋势,投入大量资源进行技术研发。公司团队深入研究用户行为分析、大数据分析等前沿技术,不断推出具有创新性的产品和服务。通过精准的数据分析和个性化推荐,友盟成功帮助众多合作伙伴提升了用户体验和业务效率,逐渐在行业内树立起了良好的口碑。

Boyd Corporation公司的发展小趣事

随着公司规模的扩大和市场需求的增长,Boyd Corporation积极拓展全球业务版图。公司在多个国家和地区设立了生产基地和研发中心,以便更好地服务全球客户。通过全球化布局,Boyd Corporation不仅提升了生产效率,还加强了与全球客户的合作关系,进一步巩固了其在电子行业的领导地位。

Compex Corporation公司的发展小趣事

Compex Corporation的创立可以追溯到电子行业的早期阶段。自XXXX年成立以来,公司便致力于研发和生产高质量的单层电容器、电阻以及其他电子元件。初期,公司面临着激烈的市场竞争和技术挑战,但凭借其卓越的技术团队和不懈的努力,逐渐在市场中站稳了脚跟。公司不断推出创新产品,满足了客户对高质量电子元件的需求,逐渐赢得了客户的信任和市场份额。

问答坊 | AI 解惑

IC购买时对假冒翻新货的识别

从网上找的识别大法,看看对大家有没有帮助。 我一般不会去柜台购买,都是从渠道商和代理商拿货。…

查看全部问答>

问题解决了啊---Keil MDK,RDI调试出现程序乱跳

今天早上5点中突然醒了,好像有个概念不知道什么时候出现在我大脑------编译器代码优化。前两天一直解决不了的程序乱跳和代码优化有没有关系,立马翻看工具手册提到了4种代码优化级别,编译器默认最好的优化,最好的优化,是最差的调试视图。我改了 ...…

查看全部问答>

X86板之NTC929板子测评

拿到了心仪已久的X86系列的NTC929板子,打开包装,给人的感觉总是那么舒心和愉悦。拿到手了,进行简单测评一下。 本板式一款高性能、低功耗3.5’的嵌入式工业主板,该板采用了Intel Siliverthorn+Poulsbo芯片组,板载IntelSilverthorn(Intel Atom ...…

查看全部问答>

WINCE打印问题?求解

我的WINCE系统 可以PING通局域网内其他PC的IP 但是 连接外网的时候就不行, 我主要是想在局网内打印(特性目录中PCL Print driver添加进去了) ,打印IE浏览器的时候 点 file/print 没反应!  我用的是HP的激光打印机支持PCL的!是不是 ...…

查看全部问答>

WM5.0的菜单问题

程序在WM5.0的设备上运行时,如果菜单项超过两项时,菜单栏的颜色就会变成淡蓝色,而不是原来默认的颜色。 请问有没有办法是菜单栏的颜色不改变或是将菜单栏的颜色设置一下呢?? 用C++…

查看全部问答>

activesync4.2无法通过usb连接pc与wince5.0

我使用致远(周立功) MagicARM2410教学实验开发平台及配套光盘中的wince镜像 按照试验指导书安装evc4.0 及activesync4.2及相关软件 但pc机始终无法使用activesync4.2通过usb与wince建立连接 pc端的activesync4.2会显示正在连接 但约一分钟后 会显 ...…

查看全部问答>

请问:我在运行evc的工程时,提示我说sdk 不能运行在emulator device,这是什么原因呀?

错误为: an application targeting a Standard SDK for Windows CE.NET and built for the MIPSII_FP CPU cannot be run on the Emulator device.In order to run this application on any CPU other than the Emulator,you will have to install ...…

查看全部问答>

8962不能调试

我用IAR v6.0编译下载EasyArm第四章实验程序的bootloader例程到EasyArm8962开发板上,但是下载后没有出现实验指导书上的结果。再试其它的程序(原来都成功了)时,IAR一进入调试就死机了,死得非常彻底,我等了近二个小时也没有提示出现。 请问这 ...…

查看全部问答>

用stm32l152芯片控制mma7455l遇到的一个问题!

我使用stm32l152模拟IIC接口控制mma7455l加速的传感器。 iic驱动程序,对加速的传感器的0x16控制寄存器的访问是完全正确,例如先向0x16寄存器写入0x45,然后可以正确的读取到0x45。 但是读取数据寄存器0x06、0x07、0x08和地址寄存器0x0d的时候却不 ...…

查看全部问答>