标题:[求助]低级问题,请指点!
取消只看楼主
tl0760
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-12-11
 问题点数:0 回复次数:5 
[求助]低级问题,请指点!

以前学了点汇编的皮毛,现在要用到它。可自己调一个简单的程序都实现不了。特来请教!

下面的程序是在数据段中给a赋值0。在代码段中将a的偏移地址放入ax中,段地址放入bx中。
可是在TD中查找到其存放地址,发现那个地址上的内容并不是a的值0。

data1 segment
a dw 0
data1 ends
code1 segment
assume cs:code1,ds:data1
start:
mov ax,data1
mov ds,ax

mov ax,offset a
mov bx,seg a
code1 ends
end start

搜索更多相关主题的帖子: start 
2007-01-07 15:34
tl0760
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-12-11
得分:0 

谢谢楼上的同志!

我是真的搞不懂了,我可能连怎么查看内存内容都忘记了。

请给我说一下怎么查看!


2007-01-08 22:00
tl0760
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-12-11
得分:0 
能不能说明白点呢?

我也去网上查查吧。

2007-01-09 12:10
tl0760
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-12-11
得分:0 

我认为段地址(16位)左移4位(20位)+偏移地址(16位)就是其物理地址,
所以通过 mov bx,seg a 将段地址存入bx通用寄存器,
通过 mov ax,offset a 将偏移地址存入ax通用寄存器。
然后,查看数据段中a存放位置的值。

我就是这样搞的。


2007-01-10 12:35
tl0760
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-12-11
得分:0 

好象还是不行,可能我哪里弄错了。。。

算了,找其他方法解决吧。

谢谢楼上的同志了!


2007-01-10 20:48
tl0760
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-12-11
得分:0 
以下是引用lefttime在2007-1-10 21:07:27的发言:
debug test.exe
-t
.... ;这是显示跟踪单步后出的数据
-t
.... ;同上
-t
....
-t
.... ;照你的程序跟踪执行4步已经能得看到ax,bx中的值,也就是你想得到的段基址和偏移地址啦
-d XXXX:XXXX ;红色部分改成bx中的值,后面改为ax中的值,这样你就能看到啦

楼上的同学比起我来真是太厉害了。。。
十分感谢你的帮忙!

随便问一下上面我引用部分的命令原来我都不知道也(不知道是我们学校什么都不教,还是我什么都不爱学。。),如果要学习的话应该学习什么好呢?


2007-01-12 16:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-114736-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.116955 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved