【求助】栈段初始化的为问题
汇编新手,高手勿笑。代码如下:程序代码:
assume cs:code,ds:data,ss:stack stack segment stack db 64 dup(11H) stack ends data segment a dw 1245H data ends code segment start: mov ax,stack ;栈段初始化 mov ss,ax mov sp,offset stack ;设置栈顶 mov ax,data mov ds,ax pop dx push a pop bx push ds:[0] pop cx mov ax,4c00H ;退出程序 int 21H code ends end start
本人系统:win7 32位,用系统自带debug调试,刚进入调试画面,查看ss:0数据,截图如附件:
为什么栈段最后两个字节未初始化为11H?另外执行第一条指令“mov ax,stack”以后栈段最后10个字节数据改变,为什么?
另外,代码段前三条代码是否多余,程序在加载如内存中的时候有系统自动设置SS:SP的值?
请高手解答啊,不胜感激
[ 本帖最后由 霞舞轻尘 于 2015-1-19 11:03 编辑 ]