. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验二有个大问题  [待解决] 回复[ 14次 ]   点击[ 888次 ]  
chen19910919
[帖 主]   [ 发表时间:2009-08-27 02:15 ]   [引用]   [回复]   [ top ] 
荣誉值:15
信誉值:0
注册日期:2009-07-08 20:35
据书中P67实验二所述,在DEBUG中执行“D 1000:0”时,段地址1000会送入寄存器DS中,但在执行后,发现DS中的数据并没有变化,这是怎么回事(我真郁闷了,刚学时还没发现,回头复习时发现了个这么大的问题,真是太粗心啦)
443930380
[第1楼]   [ 回复时间:2009-08-27 22:12 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-04-14 13:00
好像没注意   回头再看看书去  

感觉lz好像理解错了
chen19910919
[第2楼]   [ 回复时间:2009-09-13 15:36 ]   [引用]   [回复]   [ top ] 
荣誉值:15
信誉值:0
注册日期:2009-07-08 20:35
不对,不是我理解错了,我看好几遍了,应该是你没仔细看
tinyparticle
[第3楼]   [ 回复时间:2009-09-13 19:33 ]   [引用]   [回复]   [ top ] 
荣誉值:188
信誉值:4
注册日期:2009-07-05 19:26
据书中P67实验二所述,在DEBUG中执行“D 1000:0”时,段地址1000会送入寄存器DS中,但在执行后,发现DS中的数据并没有变化,这是怎么回事
=========================================================================================
没明白LZ想问什么?
执行“D 1000:0”是查看1000:0中的内容,段地址1000当然不会送入DS
auty95
[第4楼]   [ 回复时间:2009-10-21 13:11 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2009-10-09 11:42
同意3楼的解释
release_lag
[第5楼]   [ 回复时间:2009-11-19 13:44 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:0
注册日期:2009-10-27 16:12
书中原文是:D命令是由Debug执行的,Debug在执行"D 1000:0"这样的命令时,也会将段地址1000H送入段寄存器中。
接下来,书上又说了,Deubug是靠什么来执行D命令的?当然是一段程序
===================================================================================
我学完第四章回过头来理解这句话的时候是这样想的
D命令也是一段程序,在这段程序中有一段指令是修改DS值的。执行完之后,会有一个程序返回,在D命令程序末尾段返回了原来DS中的值
所以,执行D 1000:0这条命令后,我们看到DS中的值根本没有发现改变
-------以上纯属个人理解,具体真实的解释留给高手了。
tonyones17
[第6楼]   [ 回复时间:2009-11-19 17:06 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-11-16 09:59
我也是新手,同意5楼的理解
dq051524
[第7楼]   [ 回复时间:2009-12-22 16:19 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-01-14 11:55
这个问题是得有个高手解释一下
willflyz
[第8楼]   [ 回复时间:2009-12-25 14:38 ]   [引用]   [回复]   [ top ] 
荣誉值:12
信誉值:0
注册日期:2009-02-14 14:25
是楼主搞错了吧,D命令是用来查看内存单元的数据的,不会改变DS的内容。
ldlihuanfa
[第9楼]   [ 回复时间:2009-12-28 16:17 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:0
注册日期:2009-12-18 19:53
我电子书67页没这内容
ldllihuanfa
[第10楼]   [ 回复时间:2009-12-29 20:07 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:1
注册日期:2009-12-24 11:13
我也是新手,在p82页看到了这段话,我理解是d命令作为一个程序,中间会有 add ds 1000的指令。然后才能去访问1000:0的内存。楼主这个问题提得真好,我同意你后来的理解
regex
[第11楼]   [ 回复时间:2009-12-29 21:21 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
没有向那段地址写内容, 当然没变化啦
regex
[第12楼]   [ 回复时间:2009-12-29 21:22 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
debug的D命令只是显示指定地址内容, 改变地址内容可以用E命令
hygf99
[第13楼]   [ 回复时间:2010-01-18 23:02 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2009-10-17 21:41
书中原文是:D命令是由Debug执行的,Debug在执行"D 1000:0"这样的命令时,也会将段地址1000H送入段寄存器中。
接下来,书上又说了,Deubug是靠什么来执行D命令的?当然是一段程序
===================================================================================
我学完第四章回过头来理解这句话的时候是这样想的
D命令也是一段程序,在这段程序中有一段指令是修改DS值的。执行完之后,会有一个程序返回,在D命令程序末尾段返回了原来DS中的值
所以,执行D 1000:0这条命令后,我们看到DS中的值根本没有发现改变
-------以上纯属个人理解,具体真实的解释留给高手了。
------------------
回复:同意此段内容
c12528
[第14楼]   [ 回复时间:2010-04-18 21:19 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-04-18 00:41
其实只要看后面的例子再实验一下就很好理解了~~
比如打:
-r ds
ds FFFF(显示的是你当前的ds值)
:1000
-d ds:0

这两个式子合起来,就相对于先是把ds的值改为1000,再执行d 1000:0
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved