永发信息网

怎样理解操作系统中“栈”的概念?

答案:2  悬赏:30  手机版
解决时间 2021-03-27 12:32
怎样理解操作系统中“栈”的概念?
最佳答案
1、这没有为什么,C语言它就规定局部动态变量用完就销毁,所以在系统中专门划一块区域放这类变量。
2、这个栈不需要后进先出,它只满足“栈”的“只能在一端(称为栈顶(top))对数据项进行插入和删除”这个性质,你可以在不把其他元素出栈的前提下就直接访问栈底元素。追问谢谢你啦、、你的简洁些、、
全部回答
1. 因为方便,毕竟在栈中弄一块数据只要给esp加点数字就行了,局部变量不值钱。堆就麻烦多了。
2. 对。这是数据栈的一个内建实现。但是你对局部变量的理解有误区,
局部变量访问靠的是ebp寄存器,如果你反汇编就会看到进入一个函数首先会:
push ebp // 保存ebp
mov ebp,esp // 将ebp用来指向函数栈区开头
sub esp,xxh // 初始化局部变量
函数栈区是我自己的叫法,不过要记得若是栈访问超出了这个区域那程序肯定错了。
然后访问a和b用的是[ebp-n]比如,[ebp-4]可能就指向你的a。
明白了吧,esp和ebp都是寄存器,esp是32位栈寄存器,会跟着push和pop操作变化值,也就是通常的数据栈实现中的那个顶部指针。ebp是基址寄存器,常年打酱油所以经常被这么用。
上面那家伙是怎么混到15级的 =.=追问貌似你们是一个意思嘛、、呵呵、
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
浴室选用什么玻璃隔断比较好
求朝歌一曲,有女桃夭全文
思域加速是同级别最快的吗
焊锡膏导电吗?
单选题下列对《迢迢牵牛星》中诗句的理解,不
我们的妈妈说过什么最平常的话!
小学生怎样搞4
我开车被被后车追尾造成我撞了前车 我有责任
衰兵必败的读音
EMS是用的牛车么,杭州发往大庆9天还不到,谁
银川开出租车需要什么
雾霭缭绕是什么意思
我有48了才去单位上班单位给交的养老保险到了
打一次胎对女孩子的伤害有多大?
花生先播种后盖膜用黑膜可以吗
推荐资讯
2吨用水800公斤那么800公斤用水多少
国家对于按摩师考核的规定
一个等腰直角三角形,一条腰长6分米,三角形
360怎么查恶意软件
日语求助:欲速则不达
________youhavefound,youshouldgive
努力的人那么多,为什么成功的总是凤毛麟角?
中国著名道贯
2018年冬季平均气温较同期是偏高的吗?
假如你想参加学校的体育俱乐部的英语作文
有个人老是怼我咋办?
教你如何拥有一身冰雪肌肤
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?