实验5的问题。
本帖最后由 传说。 于 2014-4-27 20:14 编辑assume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends
stacksegment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
push ds:
push ds:
pop ds:
pop ds:
mov ax,4c00h
int 21h
code ends
end start
为什么我单步调试到这里的时候栈段数据就被覆盖了。 刚开始的时候都是0076a:10 段。 这一段是栈段。076a:0 这段是数据段。
大哥你别骗我了,从图1 明显的可以看出 你的SS段地址是076b,而你查看7c6a,跟栈段有什么关系? 哦!有时候内存中可能有其它的程序在运行,这样不免有所冲突,你要么在调试一下试一下! 青玄 发表于 2014-4-27 20:39 static/image/common/back.gif
哦!有时候内存中可能有其它的程序在运行,这样不免有所冲突,你要么在调试一下试一下!
调试好几次了。 刚开始的时候都是0. 一执行到那一步就被覆盖了。 pop完之后还是被覆盖的数据。 为之疯狂 发表于 2014-4-27 20:37 static/image/common/back.gif
大哥你别骗我了,从图1 明显的可以看出 你的SS段地址是076b,而你查看7c6a,跟栈段有什么关系?
栈段你还没搞清楚哪一段, 你还是重新学一遍吧。 传说。 发表于 2014-4-28 11:46 static/image/common/back.gif
调试好几次了。 刚开始的时候都是0. 一执行到那一步就被覆盖了。 pop完之后还是被覆盖的数据。
这个问题还是不研究了。。反正运行是正常的。。 dw 0 , 存入内存是00 ,还是00 00, 是占几个字节? 为什么上面定义八个字, 下面定义了 16 个0 本帖最后由 吃货YA鸭 于 2017-6-14 15:17 编辑
dw是存入00 00,正常占1个字两个字节,db是存入00,相当于一个字节。分配空间的公式是一样的,。而且我的cpu也是从76a:0开始的,我debug就不会出现,你那种栈空间被占用的问题。
页:
[1]