首页 > 其他分享 >10.6对栈进行push和pop

10.6对栈进行push和pop

时间:2023-02-08 09:35:33浏览次数:29  
标签:对栈 存储 pop 指令 push 数据

程序运行时,会在内存上申请分配一个称为栈的数据空间。栈(stack)有“干草堆积如山”的意思。就如该名称所表示的那样,数据在存储时是从内存的下层(大的地址编号)逐渐往上层(小的地址编号)累积,读出时则是按照从上往下的顺利进行(图10-3)的。

 

 栈是存储临时数据的区域,它的特点是通过push指令和pop指令进行数据的存储和读出。往栈中存储数据称为“入栈”,从栈中读出数据称为“出栈”。32位×86系列的CPU中,进行1次push或pop,即可处理32位(4字节)的数据。

push指令和pop指令中只有一个操作数。该操作数表示的是“push的是什么及pop的是什么”,而不需要指定“对哪一个地址编号的内存进行push或pop”。这是因为,对栈进行读写的内存地址是由esp寄存器(栈指针)进行管理的。push指令和pop指令运行后,esp寄存器的值会自动进行更新(push指令是-4,pop命令是+4),因而程序员就没有必要指定内存地址了。

标签:对栈,存储,pop,指令,push,数据
From: https://www.cnblogs.com/2674308160-lucky/p/17100524.html

相关文章

  • 10.6对栈进行push和pop
    程序运行时,会在内存上申请分配一个称为栈的数据空间。栈stack)有“干草堆积如山”的意思。就如该名称所表示的那样,数据在存储时是从内存的下层(大的地址编号)逐渐往上层(......
  • Mobpush 促进用户活跃
    拉新、留存、促活是App运营的关键指标,除了运营手段,我们从用户体验角度出发,用技术手段也可以促进App用户活跃。从用户体验方面来说,第一次登陆App可以用微信、微博等第......
  • Mobpush 促进用户活跃
    拉新、留存、促活是App运营的关键指标,除了运营手段,我们从用户体验角度出发,用技术手段也可以促进App用户活跃。从用户体验方面来说,第一次登陆App可以用微信、微博等第......
  • 使用popup.remove()仍然不能移除popup的原因
    今天遇到一个问题  添加完popup之后 想要移除popup,,然后使用popup.remove这个方法还是不管用,popup.remove()后还是会有一个空白的popup在页面上。博主高考语文不及格......
  • python基础:split、join、replace、remove、del、pop、index小记
    这里总结了平时写脚本时经常用到的一些基础方法,做个记录1、split()函数可以基于分隔符将字符串分割成由若干子串组成的列表str.split(str="",num=string.count(str))......
  • 本地文件push到git
    1.刚创建的本地文件,还未初始化,gitinit,会自动生成一个.git文件夹2.gitadd.将文件添加到缓存区3.gitcommit-m'commit的命名'4.创建新分支,直接将新分支的内容pus......
  • git推送时(push)shell脚本的行分隔符类型依然是CRLF,没有变成LF
    git的autocrlf设置会在push推的时候把CRLF变成LF,pull拉的时候会把LF变成CRLF(视系统而定),需要注意的一点就是git每次推不会作用于项目全部文件,只作用于检测到变更的文件 ......
  • Prometheus Pushgateway配置笔记
    前言pushgateway的安装不再赘述,通用的操作最后以daemonlized方式运行。在Prometheus中给pushgateway上报的数据单独定义一个job:需要注意的点:pushgateway本身没有任何......
  • github与jenkins相结合实现push代码后自动部署
    首先在settings里面设置  jenkins-token记得设置勾选  至此github设置完成jenkins  credentials:选择私钥复制进去,github上放置公钥  将之前的gith......
  • git push大文件失败 - write error: Broken pipe
    通过查阅了一些资料,我发现是因为GitHub对提交的文件大小做了限制,GitHub会阻止超过100MB的推送(单文件),检查了一下我提交的文件中有一个超过200MB的文件。GitHub官方说明......