#2
hu9jj2015-01-20 14:37
|
程序代码:
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 编辑 ]