关于8086中堆栈段的问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 09:44:25
堆栈段到底用来做什么的,能否给一个很明白的解释,书也看过了,网上也找过类似的答案了,还是不清楚,我想问的是堆栈段中是不是可以定义变量?还是仅仅申请一个堆栈空间,系统自动将变量或函数返回值等分布到堆栈空间中去,可以具体举个例子哈,谢谢,本人才学习8086。

CS和IP确定的段是程序代码段,一放用来放程序的。DS确定的段是数据段,一般用来定义变量、存的数据。而堆栈一般是用来暂存一些数据的,用的最多的时候是中断,本来CPU在执行一个程序(A),突然有另外一个程序(B)要打断CPU执行A,转去执行(B),因为两个程序都要用CPU里面的寄存器,故想执行完B后转回来接着执行A,就得在响应中断程序前先把A状态断点处的寄存器保存起来,而一般会保存在这个区,当执行完B后接着执行A时把这些保存的寄存器值恢复成原来状态,接着执行A(这个保存寄存器的过程就跟你在看书突然又去接电话,在接电话前先把书折起来是一样的,保存一下原来状态)。你问的定义变量一般会分配到数据区。仅是申请一个空间,当遇到相应的PUSH,POP指令时,会自动的把数据压入这个区