王爽汇编语言第六章 实验五的疑问

雷格 2012-10-18 06:26:39
下面的代码是王爽汇编语言实验五(1)小题的代码,设置了数据段,代码段,栈段

assume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends

stack segment
dw 0,0101H,0202H,0303H,0404H,0505H,0606H,0707H ;这里是栈中的初始化内容
stack ends

code segment

start: mov ax,stack ;stack中保存的是栈段的段地址,对吧?我调试的时候看到的是0B42
mov ss,ax ;为什么一执行这条指令后栈中的内容就变了?
mov sp,16

mov ax,data
mov ds,ax

push ds:[0]
push ds:[2]
pop ds:[2]
pop ds:[0]

mov ax,4c00h
int 21h
code ends
end start


我把它编译后debug.在debug的时候发现程序刚载入时,用D命令查看栈中的内容是程序代码中的初始内容,
可是一当执行mov ss,ax后栈中的内容就变了呢?
没执行mov ss,ax前我观察的0b42:0段的内容,设置ss的值为0b42后我观察的还是0b42:0 10的内容
...全文
285 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
雷格 2012-10-21
  • 打赏
  • 举报
回复
地址木有变啊 亲,只是登记了一下
[Quote=引用 6 楼 的回复:]
地址变了,内容能不变吗!
[/Quote]
yh_no_code 2012-10-21
  • 打赏
  • 举报
回复
地址变了,内容能不变吗!
WJN92 2012-10-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

我也发现了,那这样的话,我要用栈 它也要用,那不冲突吗?
引用 1 楼 的回复:
DEBUG需要用栈来保存调试信息的
上面你只要看看就能看出里面的东西就是你正在执行的地址
[/Quote]
既然你知道了,只能你自己衡量好了。要不你就换个调试器
雷格 2012-10-18
  • 打赏
  • 举报
回复
我只是把 stack段地址告诉了ss寄存器,为什么会变呢?
登记一下怎么会变呢?
[Quote=引用 3 楼 的回复:]
你把stack段寄存器改了,内容能不变吗?
[/Quote]
大熊猫侯佩 2012-10-18
  • 打赏
  • 举报
回复
你把stack段寄存器改了,内容能不变吗?
雷格 2012-10-18
  • 打赏
  • 举报
回复
我也发现了,那这样的话,我要用栈 它也要用,那不冲突吗?
[Quote=引用 1 楼 的回复:]
DEBUG需要用栈来保存调试信息的
上面你只要看看就能看出里面的东西就是你正在执行的地址
[/Quote]
WJN92 2012-10-18
  • 打赏
  • 举报
回复
DEBUG需要用栈来保存调试信息的
上面你只要看看就能看出里面的东西就是你正在执行的地址

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧