把痛苦留在明天 发表于 2013-8-5 10:24:46

实验五(1)

我的代码

assume cs:code,ds:date,ss:stack
date segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
date ends
stack segment
dw 0,0,0,0,0,0,0,0,0
stack ends
code segment
star:mov ax,stack
mov ss,ax
mov sp,16
mov ax,date
mov ds,ax
push ds:
push ds:
pop ds:
pop ds:
mov ax,4c00h
int 21h
code ends
end star
执行后http://bbs.fishc.com/forum.php?mod=image&aid=14702&size=300x300&key=91bae7ce46740006&nocache=yes&type=fixnone
看小甲鱼的不是cs-ds=2
cs-ss=1吗?
会不同?
是什么原因?

ck329054222 发表于 2013-8-5 14:56:16

你用t单步调试看看。。。我一开始就直接用p命令,发现和你一样的结果。。。用t就和小甲鱼的结果一致

福禄娃娃 发表于 2013-8-5 15:55:22

本帖最后由 福禄娃娃 于 2013-8-5 16:07 编辑

因为你定义堆栈段的时候多定义了一个字数据,所以需要多减一个。原题中数据段和堆栈段都只定义了8个字,16个字节
假如程序执行到mov ax,4c00时 CS为1002,那么SS肯定为1001,DS为1000,相差8个字、16个字节。

把痛苦留在明天 发表于 2013-8-5 17:19:07

福禄娃娃 发表于 2013-8-5 15:55 static/image/common/back.gif
因为你定义堆栈段的时候多定义了一个字数据,所以需要多减一个。原题中数据段和堆栈段都只定义了8个字,16个 ...

还真是,谢谢{:5_109:}

福禄娃娃 发表于 2013-8-5 17:22:04

把痛苦留在明天 发表于 2013-8-5 17:19 static/image/common/back.gif
还真是,谢谢

不客气,问题解决后需要设置为已解决,或者采纳答案

把痛苦留在明天 发表于 2013-8-5 17:28:34

福禄娃娃 发表于 2013-8-5 17:22 static/image/common/back.gif
不客气,问题解决后需要设置为已解决,或者采纳答案

好的,我都忘了{:5_96:}
页: [1]
查看完整版本: 实验五(1)