作业帮 > 综合 > 作业

为什么要定义堆栈段,很多汇编程序都没有显性的用到堆栈段(既没有用到ss和sp,pop,push),但还是定义了堆栈段,并

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/07 23:45:40
为什么要定义堆栈段,很多汇编程序都没有显性的用到堆栈段(既没有用到ss和sp,pop,push),但还是定义了堆栈段,并开辟了一定的存储空间,既然没用到,为什么要定义堆栈段并且开辟存储空间?
如下面的代码是求1+.+100的和?
为什么定义了堆栈段,并开辟了200个字节存储区后,在后面的程序中没有用到呢?
STACK SEGMENT
DB 200 DUP(0)
STACK ENDS
DATA SEGMENT
SUM DW
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AX,0
MOV CX,100
NEXT:ADD AX,CX
LOOP NEXT
MOV SUM,AX
CODE ENDS
END START
第一,在定义时,还没有写程序,不知道程序会不用用到堆栈
第二,即使自己没有用到,在发生中断、过程调用等情况时,还是用到了堆栈
所以在定义时都会分配一定的堆栈空间的