汇编语言的堆栈段是什么意思

哪位高手给我指点下哈 通俗点讲一下,讲的深了我听不懂的 呵呵呵 是不是每个汇编程序都得用到堆栈段呀?还是只是某些汇编程序才需要堆栈段,而有的不需要?谢谢啦

程序:堆栈兄,哥们手忙不过来,一些东西存你那。过会儿用到,哥们再到你这来取。
堆栈:存是可以。但怎么存,怎么取,得有个章法,得听老子的。
程序:怎个章法?
堆栈:老子可没那空帮你们整来整去。 给老子东西,老子就放最上面;找老子要东西,就给你最上面的。整乱了,老子一概不负责。
(程序偷偷来句,去你妈的!)
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-18
恩,个人意见发表一下,堆栈,对于汇编来说,有系统定义的堆栈,这个不用你操心,就是你在汇编中不定义,系统也定义,这个堆栈主要是怕你调用中断啊,调用了子程序啊,他要压站,压的是cs,ip这两个数据,但是你要是自己定义了,那么你可以使用自己的,可以通过堆栈给子程序传递参数啊,或者保存一些你自己需要的数据。至于需要不,这个看你的习惯,你要很习惯利用堆栈来坐数据的转换,你就定义,要是你不喜欢,那开普通的内存空间照样搞定。凡是系统都给你提供一些工具,看你喜欢什么,就使用什么
第2个回答  2011-11-18
一般是局部变量需要用到堆栈

_MyProc proc
local @nNum:byte
.......
........
end proc

还有函数的参数。
还有CALL时要记下各寄存器的值,还有当前CS,IP的值等,都要用堆栈存储。

如果你没有子程序,没有局部变量,也许不需要用吧。不过外面的SHELL也可能要用。
第3个回答  2011-11-18
这个问题要弄懂还是要把你的课本要看全面,课本是基础,看书的时候要从头到尾的看,你心中有个整体的概念,这样理解起来就快多了。
第4个回答  2011-11-18
简单的说,从C语言角度来看,函数内定义的局部变量,函数调用时的参数都是在堆栈中的。堆栈的主要功能也就是实现函数调用和返回、局部变量。

参考资料:原创

汇编语言的堆栈段是什么意思
一、堆栈段的定义:是指采用堆栈方式工作的一段内存区域。在采用段式内存管理方式进行程序内存分配的架构中,堆栈段用来存放局部变量和函数返回地址。堆栈段是在程序运行时动态分配使用,只需要通过栈顶指针即可访问。目前大多数CPU中都有专用寄存器可以被用来存放栈顶地址。二、堆栈段的说明:1、在程序中,...

汇编语言里面的堆栈是什么东西啊!
1.堆栈本质上只是普通的内存地址 2.堆和栈本来是两种数据结构,现常用“堆栈”连用仅表示栈。3.栈的使用方式是临时存放数据,在某一段内存中,从内存地址最后开始存放,像叠盘子一样,只能将最后放入的数据先取出来。4.栈在汇编语言中经常使用,cpu寄存器中有sp(32位为esp),即stack pointer,指向...

汇编语言源程序的组成部分
堆栈段是用于实现函数调用和返回的部分。当程序执行一个函数调用时,会将当前的执行环境(如寄存器的值)保存在堆栈中,然后跳转到函数的代码执行。当函数执行完成后,再从堆栈中恢复执行环境,返回到调用点继续执行。总的来说,一个完整的汇编语言源程序需要包含数据段、代码段和堆栈段,它们分别负责存储...

汇编语言中设置的堆栈段到底有何作用,怎样的情况下需要设置这个堆栈段...
堆栈段主要用于暂时保存一些数据,不可或缺。操作系统在把应用程序装入内存时,默认分配堆栈段与代码段同段,应用程序可以自行设置自己的堆栈段。自行设置的堆栈段大小最小4个字节,用于从应用程序返回操作系统,几乎所有的初学者不知道这个默认的、不成文的规定。只有较大的程序或递归调用较深的程序,才有...

请问汇编语言中的堆栈是什么呀
程序执行中将执行中的数据暂时存放在一段存储空间中,这段存储空间就是栈,栈的存取速度非常快,而存放数据的这个过程就是堆栈,堆栈一般都尊循现进后出的原责,例如执行中断程序时要先把执行前的一些数据存放到栈中,执行完中断程序后再从栈中取出数据继续执行 ...

汇编语言中数据段、代码段、堆栈段的定义及用法?
在汇编语言的世界里,数据段、代码段和堆栈段是程序结构的关键组成部分,它们各自承载着不同的任务,共同构建起程序的逻辑框架。让我们深入探讨一下这三者如何定义和使用,以实现高效的计算和内存管理。首先,代码段是程序中的指令存放区域,它的主要任务是存储程序的执行逻辑。以计算0123h到0987h的和为例...

汇编语言数据段和堆栈段的区别
数据段是程序固写在ROM(只读存储器)中的一组数据,不可改写 堆栈是在RAM(随机存储器)在开辟的一段存放数据的区域,可读可写。使用堆栈方式就需要遵循堆栈操作规则 最先进栈的,被压低下,是最后取出的

汇编语言源程序应该由哪些逻辑段组成
一般情况下汇编语言源程序应该由以下3个逻辑段组成:① 数据段:用来在内存中建立一个适当容量的工作区,以存放常数,变量等程序需要对其进行操作的数据;② 堆栈段:用来在内存中建立一个适当容量的堆栈区,以便在中断、子程序调用时使用;③ 代码段:包括了许多以符号表示的指令,其内容就是程序需要执行...

什么是堆栈
有句话说"砌墙的砖,后来居上"就是跟栈一样的原理,它的英文简称是:LiFo(last in first out),在汇编语言里面,栈是最基本的语句,更接近计算机的原理,它是内存理最基本的存取方式。这数据结构课程中最基本的,是一个独立的课程,建议你去找相应的说进行更深入的了解。祝你好运!

堆栈指令是什么意思
首先从汇编的角度来理解堆和栈 我们都知道在汇编语言中有著名的三个段:代码段,数据段和堆栈段。同为存储数据为什么有两个不同区域呢?其实我们仔细想一下就会明白,我们所谓的堆栈段,或者说栈段,正是那种支持后进先出特性的内存区域。汇编语言里面的 POP 和 PUSH 两个指令就是来操作堆栈段的。而...

相似回答