汇编语言里面的堆栈是什么东西啊! 请问汇编语言中的堆栈是什么呀

作者&投稿:颛泪 (若有异议请与网页底部的电邮联系)
1.堆栈本质上只是普通的内存地址
2.堆和栈本来是两种数据结构,现常用“堆栈”连用仅表示栈。
3.栈的使用方式是临时存放数据,在某一段内存中,从内存地址最后开始存放,像叠盘子一样,只能将最后放入的数据先取出来。
4.栈在汇编语言中经常使用,cpu寄存器中有sp(32位为esp),即stack pointer,指向当前栈的顶端,汇编语言中的栈并非其他语言中的一种数组型的数据结构,而直接简化为一段内存,通过pop和push等指令来进行直接的内存操作。
5.堆和栈有相似,即皆是一段普通内存,不同点是,堆是顺序存放,且堆只能由程序员申请让系统分配,而栈是程序员自行分配。
6.8086汇编一般无堆,win32汇编中可使用API函数来操作堆。

最底下封口的存储空间,按照先进后出,后进先出的原则。

栈机制是用来暂存数据的,因为数据不可能都保存在寄存器里面。额,我不知道你对汇编了解不,先来一段代码:
mov ax,20h
mov ss,ax 定义了SS的段地址。
mov sp,10h 定义了栈底。
以上代码定义了栈段。
现在,我要计算100:0-100:10内存单元的和,就需要暂时保存内存单元100:0-100:10的数据:
mov ax,100h
mov ds,ax
定义了ds的段地址
mov cx,11
sub bx,bx
s:push [bx] 把100:0压栈
inc bx
loop s
上面是一个循环

栈机制是一个很灵活的技术,一定要灵活地掌握,但是我不了解你的情况,也许你需要把问题描述一次

堆栈就是一种存放数据的格式,也可以说是一个存放数据的空间

汇编语言里面的堆栈是什么东西啊!~

1.堆栈本质上只是普通的内存地址
2.堆和栈本来是两种数据结构,现常用“堆栈”连用仅表示栈。
3.栈的使用方式是临时存放数据,在某一段内存中,从内存地址最后开始存放,像叠盘子一样,只能将最后放入的数据先取出来。
4.栈在汇编语言中经常使用,cpu寄存器中有sp(32位为esp),即stack
pointer,指向当前栈的顶端,汇编语言中的栈并非其他语言中的一种数组型的数据结构,而直接简化为一段内存,通过pop和push等指令来进行直接的内存操作。
5.堆和栈有相似,即皆是一段普通内存,不同点是,堆是顺序存放,且堆只能由程序员申请让系统分配,而栈是程序员自行分配。
6.8086汇编一般无堆,win32汇编中可使用API函数来操作堆。

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

...堆栈?堆栈有什么用?没设置又会怎么样?堆栈是什么?还请各位嵌入式大神...
答:堆是用来申请不连续内存的数据区域,比如链表,地址不连续,而是通过指针串在一起形成一个连续的结构,c语言中用malloc函数申请的内存都在堆上,申请过不用时记得要用free函数释放掉,不然内存泄露。而栈的速度比堆的快,数组和局部变量都是在栈上分配,效率比较高。另外还有自由存储区、全局/静态存储区...

C语言中内存堆和栈的区别
答:内存分配中的栈和堆 然而我要说的重点并不在这,我要说的堆和栈并不是数据结构的堆和栈,之所以要说数据结构的堆和栈是为了和后面我要说的堆区和栈区区别开来,请大家一定要注意。下面就说说C语言程序内存分配中的堆和栈,这里有必要把内存分配也提一下,大家不要嫌我啰嗦,一般情况下程序存放在...

C语言中,什么是栈,什么是堆
答:栈是属于线程的,每一个线程会有一个自己的栈。2、堆区(heap):一般由程序员分配释放,若程序员不释放,则可能会引起内存泄漏。注意它和数据结构中的堆是两回事,分配方式倒是类似于链表,常见的就是malloc出来的都是属于堆区,就像固定出来的区域,到free的时候才释放,有点类似全局的,静态的。

到底堆栈是干什么的? 怎么用啊?
答:堆栈是系统内存管理的一种机制,一般高级语言不会直接提供这种东西,但是编程人员出于堆栈操作特性的原因,可以使用内存操作函数实现堆栈,堆栈分为堆和栈,堆就是一块内存,怎么处理都可以(前提是要有权限),栈必须遵循先进后出的原则,就像一个死胡同,最后进的必须先出。具体的定义参考如下: http://...

什么是堆栈,请利用通俗易懂的语言解释
答:什么是堆栈,这可是两个问题哦,我用C++说一下:一个程序要运行,系统会给该程序分配一定的空间,其中就包括堆和栈,都是用来存放程序中的变量,同时栈的功能更多,比如说在递归中,虚函数列表中,都有栈的影子 语句1: int a,b;语句2: char str1[100];语句3: char* str2 = new char[100];语句1的...

堆栈是什么~!
答:最后将保存起来的中断断点位置送入程序指针,恢复原程序的工作。这个过程中需要保存的数据放到什么方呢,就是堆栈中,PUSH指令就是将某个单元压入堆栈的指令,POP就是将堆栈中的数据弹出并送回POP后面指定的单元中,堆栈指针同时作相应的改动。堆栈是处理中断必不可少的内存资源。

C语言的堆栈和单片机里的堆栈的联系和区别
答:堆栈在C语言中的定义(单片机的中堆栈相当于栈)在计机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一...

Windows操作系统堆和栈的区别
答:堆和栈的区别(内存和数据结构)在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一...

汇编语言堆栈段是什么意思
答:单片机的堆栈就相当于一个缓存,先进入到堆栈的数据要最后一个才能出来。堆栈是进入中断的时候用到的,单片机一旦遇到中断请求,就会去处理中断,处理完后再回来处理主程序,这样就涉及到了一个问题,单片机要保存中断之前的信息,以便处理完后能够回到主程序中,单片机会在响应中断前,把单片机现在的指针地址...

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