dw把数据放哪里了
本帖最后由 苦人儿 于 2012-1-19 13:28 编辑data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends
这段定义中把数据0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h放在了内存中的哪里了?找不到。
是放到ds:0处,还是放到了其他地址。与什么有关?
各位大侠不吝赐教!
谢谢! 这个天不知,地不知,只有系统知道(小甲鱼老师的话),因为在你定义了这段数据时,系统会自动给分配空间来存放的。 data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends
若你要想找到具体放到什么地方,可以这样试下:
在上述数据段的基础上,加入下面的指令
mov ax,data
mov ds,ax
这时候你看看ax 或ds 的值,就知道了你这个数据段的段地址了。 大侠看看结果吧!好像出错
我每天无限的DEBUG,我感觉,0123h 会对应 起码的是 23 10 这样的机器码出来。。 本帖最后由 张国祥 于 2012-1-23 19:26 编辑
如果ds段在程序最前端的话,数据就在psp的后面 要把dsg所在段正确指向ds寄存器,才能行;因为ds在程序开始似乎并不指向dsg ds段 :lol:lol:$:$ 这段数据放在哪,主要看前面的关联和后面的代码了,如果data跟DS关联应该是放在data:0处了,如果跟CS关联,后面还有代码的话,就是放在代码段的前面了,执行时就从这个数据开始执行,那样就不对了,的加个标号就是入口地址,指定程序的第一条指令在那个位置,如果不加标号就从数据开始执行就有莫名其妙的指令了,不知道说的对不对,本人也是菜鸟,希望各为高手指导啊!
页:
[1]