注册 登录
编程论坛 汇编论坛

感谢各位!

Amrain 发布于 2007-03-20 22:21, 668 次点击
只有本站会员才能查看附件,请 登录


我写好了汇编程序以后进行调试,明明就在数据段里面定义了数据占了内存的。。可为什么我用DEBUG进行调试的时候如命令:D 0000 000A
可显示的却都一样呢?无论我如何去变化命令,可显示出来的都一样?
都是显示: OAE8:0000 CD 20 FF 9F 00 9A EE FE-1D FO 4F 03 4C 05 8A 03 反正就是这些了。。也不知道如何去调试自己的程序,只是知道我的程序没有语法错误,因为我能把它生成为EXE格式。 非常感谢!!!有位帅哥告诉我说直接用D就可以了..但是用D后它还是显示那些内容..我想查看的是我自己存放在数据段里的内容啊..是不是跟我写的地址有关..我输的地址错了呢?谢谢!!!
5 回复
#2
wchx2152007-03-21 18:29
当用debug调用一个应用程序时,ds指向程序内存区的段地址.
而在内存区的前256个字节是程序段前缀(psp)
当输入d 0000 000a(注意:格式是d 段地址:偏移地址)时
就会显示ds:0000的内容(000a在这里是无效的)
就会显示psp的内容而不是数据区的内容.
建议在执行mov ax,data
mov ds,ax
在用d 0应该就会显示数据区的内容.

#3
lefttime2007-03-21 20:18

运行Debug编写程序时
-A
-XXXX:XXXX
...
第一串XXXX为你所在数据、代码的基址,用D显示时换成它!
举个例子:
......
-A
0AFA:0100 DB 12,23,34,45,56
0AFA:0104
-D 0AFA:0100
......

#4
Amrain2007-03-21 22:42
只有本站会员才能查看附件,请 登录

非常感谢哈!不过又发现了一个问题,为什么我用D命令和用D 0 命令显示出来的数据基地址却不一样呢?谢谢!!!
#5
菜鸟上路2007-03-22 11:55
数据基地址不是固定的,即使同一个程序在不同的时刻的数据基地址也不一定相同
#6
Amrain2007-03-22 21:47
非常感谢您们!!接合您们的回答,今天晚上我又查了下资料,我觉得我已经得出了答案了..首先,数据基址不是固定的..其次,再汇编时,内存区的前256个字节是程序段前缀psp,所以说如果我想查看自己存的数据的话.就必须还要在前面加上FF,因为这是PSP所占用的....非常感谢您们!!!
1