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