DATA SEGMENT
BCDBUF DB 12H,24H,96H,87H,71H,79H,56H,34H,63H,45H
COUNT EQU $-BCDBUF
ABCBUF DB 20 DUP(?)
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
STAPN DB 100 DUP(?)
TOP EQU LENGTH STAPN
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV SI,OFFSET BCDBUF
MOV DI,OFFSET ABCBUF
MOV CX,COUNT
CLD
LP: LODSB ;SI->AL
MOV BL,AL
AND AL,0FH
OR AL,30H
STOSB ;AL->DI
MOV DL,AL
CALL DISP
MOV AL,BL
PUSH CX
MOV CL,4
SHR AL,CL
OR AL,30H
MOV DL,AL
STOSB
CALL DISP
POP CX
LOOP LP
MOV AH,4CH
INT 21H
DISP PROC NEAR
MOV AH,02H
INT 21H
MOV DL,' '
MOV AH,02H
INT 21H
RET
DISP ENDP
CODE ENDS
END START
请问各位大侠,上面程序的堆栈段有什么作用。