首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >2.4 堆栈

2.4 堆栈

作者头像
命运之光
发布2024-09-05 12:59:28
发布2024-09-05 12:59:28
4980
举报

🎓 微机原理考点专栏(通篇免费)

欢迎来到我的微机原理专栏!我将帮助你在最短时间内掌握微机原理的核心内容,为你的考研或期末考试保驾护航。

为什么选择我的视频?
  • 全程考点讲解:每一节视频都紧扣考试要点,拒绝冗余,专注于最关键的知识点。
  • 系统且高效:我已经为你精心准备了系统的学习资料,让你不再迷茫。

🔗 点击这里观看我的视频讲解 🔗

我需要你的支持

我为这套视频投入了大量精力,希望它能对你的学习有所帮助。如果你觉得内容有用,请给我的视频点个赞、评论、并关注我,这将是我继续创作的最大动力!

🙏 感谢你的支持!祝你学有所成! 🙏


2.4 堆栈

堆栈是以“先进后出”或“后进先出”原则管理的存储区域。SS给出堆栈段的段基址,SP存放栈顶地址,指出从栈顶到段首址的偏移量。

例题:已知当前堆栈段的段首址为20000H,SS=2000H,SP=0010H,BX=5678H,分别进行PUSH BX,POP CX,POP DX。 解:

  1. 初始状态: SS = 2000H SP = 0010H 段首地址 = SS × 16 = 20000H 堆栈顶地址 = 段首地址 + SP = 20000H + 0010H = 20010H
  2. 执行 PUSH BX: SP 减少 2: SP = 0010H - 2H = 000EH 将 BX 的值(5678H)压入堆栈: 堆栈顶地址 = 段首地址 + SP = 20000H + 000EH = 2000EH 内存 2000EH 处存储值 5678H
  3. 执行 POP CX: 从堆栈顶弹出一个 16 位值到 CX: 堆栈顶地址 = 2000EH CX = 5678H SP 增加 2: SP = 000EH + 2H = 0010H
  4. 执行 POP DX: 从堆栈顶弹出一个 16 位值到 DX: 由于上一次 **POP**** 操作后 SP 已回到 0010H**,堆栈为空所以 **DX** 获取的值是未定义的(可能是上次堆栈操作留下的值)。 SP 再次增加 2: SP = 0010H + 2H = 0012H

20000

20001

20002

20003

20004

20005

20006

20007

20008

20009

BBH

SP->栈顶

20010

AAH

BX=5678H

BL(低八位)

34H

BH(高八位)

12H

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🎓 微机原理考点专栏(通篇免费)
    • 为什么选择我的视频?
    • 我需要你的支持
  • 2.4 堆栈
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档