请教个汇编语言问题,各位高手帮帮忙解答下,万分感谢。
题目是问设计一个分程序,当x>0,y=1 ; x=0;y=0; x<0,y=-1。设X放在XX单元,Y放在YY单元,程序如下:
STACK SEGMENT STACK
DW DUP 256(?)
TOP LABEL WORD
STACK ENDS
DATA SEGMENT
XX DB X
YY DB Y
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
LEA SP,TOP
MOV AL,XX
CMP AL,0
JGE NEPA
MOV YY,0FFH
JMP STOP
NEPA: JE NEPB
MOV YY,1
JMP STOP
NEPB: MOV YY,0
STOP: MOV AH,4CH
INT 21H
CODE ENDS
END SRART
我的主要问题是程序里头有分别获取堆栈段的地址给SS,栈订指针地址送给SP的代码,前前后后我也没见用到什么堆栈,程序我觉得只要定义数据段就可以了,为什么程序里还要定义256个字的堆?
谢谢各位帮忙解答了
答案:是没有用到。估计是考虑=没有堆栈编译时会被WARNING,还有可能是这个程序原来是其他程序的子程序,挪过来的时候没有进行移除。
你可以去掉。
其他:是没有用到。 调用子程序、执行终端都需要用到堆栈,以便执行完成后返回到正确的代码段
上一个:汇编语言编程题,各位请鼎立相助
下一个:汇编中DW的解释?