当前位置: 首页 > article >正文

【汇编语言】寄存器(内存访问)(六)—— 栈

在这里插入图片描述

文章目录

  • 前言
  • 正文
  • 结语

前言

📌

汇编语言是很多相关课程(如数据结构、操作系统、微机原理)的重要基础。但仅仅从课程的角度出发就太片面了,其实学习汇编语言可以深入理解计算机底层工作原理,提升代码效率,尤其在嵌入式系统和性能优化方面有重要作用。此外,它在逆向工程和安全领域不可或缺,帮助分析软件运行机制并增强漏洞修复能力。

本专栏的汇编语言学习章节主要是依据王爽老师的《汇编语言》来写的,和书中一样为了使学习的过程容易展开,我们采用以8086CPU为中央处理器的PC机来进行学习。

正文

在这里,我们研究栈的角度是:

栈是一种具有特殊的访问方式的存储空间。它的特殊性就在于,最后进入这个空间的数据,最先出去

可以用一个盒子和3本书来描述栈的这种操作方式。

一个开口的盒子就可以看成一个栈空间,现在有3本书可以看成是数据,《高等数学》、《C 语言》、《软件工程》,把它们放到盒子中,操作的过程如下图所示。

在这里插入图片描述

现在的问题是,一次只允许取一本,我们如何将3本书从盒子中取出来?

显然,必须从盒子的最上边取。这样取出的顺序就是:《软件工程》、《C语言》、《高等数学》,和放入的顺序相反,如下图所示。

在这里插入图片描述

从程序化的角度来讲,应该有一个标记,这个标记一直指示着盒子最上边的书

如果说,上例中的盒子就是一个栈,我们可以看出,栈有两个基本的操作:入栈和出栈。

  • 入栈:将一个新的元素放到栈顶
  • 出栈:从栈顶取出一个元素

栈顶的元素总是最后入栈,需要出栈时,又最先被从栈中取出。

栈的这种操作规则被称为:LIFO(Last In First Out,后进先出)

结语

今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下。

也可以点点关注,避免以后找不到我哦!

Crossoads主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是作者前进的动力!

在这里插入图片描述


http://www.kler.cn/news/356181.html

相关文章:

  • k8s 1.28.2 集群部署 harbor v2.11.1 接入 MinIO 对象存储
  • Linux文件操作基础
  • [LeetCode] 127. 单词接龙
  • Django中如何实现用户认证和会话管理
  • ThreadLocal线程局部变量
  • 《柬埔寨语翻译通》App是如何实现高棉语语音识别翻译技术的,高精度OCR文字识别技术分享!
  • IO多路复用:select、poll、epoll的底层区别
  • 003 Qt_信号和槽-上
  • FPGA图像处理之均值滤波
  • react子应用嵌入qiankun微前端后,多层抽屉drawer getContainer={false}挂载在当前位置后抽屉不在停靠在窗口的最边上
  • HarmonyOS NEXT开发之ArkTS自定义组件学习笔记
  • 全桥LLC谐振变换器概述及MATLAB仿真
  • LeetCode刷题日记之贪心算法(二)
  • 【汇编语言】寄存器(内存访问)(七)—— CPU提供的栈机制
  • python从0快速上手(十二)高级特性2
  • 如何接受Date范围的数据
  • Chrome DevTools 三: Performance 性能面板扩展—— 性能优化
  • Python | basemap空间绘图 | cartopy | geoviews
  • ABAP:创建/修改客户的银行信息
  • 深度学习模型训练的主要流程(不定时更新中)