xiaop8371992 发表于 2011-7-16 16:47:04

用debug跟踪程序6.3时发现的问题

小甲鱼老师好:
我在看课本128页的程序6.3时用debug跟踪调试了一下,我在查看内存时发现有一段内存代码中没有对其进行操作,但是里面的内容还是变了,这是为啥?我这两天一直没弄懂,老师帮忙看一下,还有论坛里的高手也帮忙看一下,我把截图发上来吧:

xiaop8371992 发表于 2011-7-16 16:51:45

怎么发图啊,不会啊

xiaop8371992 发表于 2011-7-16 17:03:59

风扫地 发表于 2011-7-16 20:00:42

用附件直接上传图片。。。。注意格式。

xiaop8371992 发表于 2011-7-16 21:00:56

嗯,这下应该行了吧

xiaop8371992 发表于 2011-7-16 21:02:44

assume cs:codesg
codesg segment
       dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
       dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
   
start:mov ax,cs
      mov ss,ax
      mov sp,30h

      mov bx,0
      mov cx,8
    s:push cs:
      add bx,2
      loop s
      mov bx,0
          mov cx,8
   s0:pop cs:
      add bx,2
      loop s0

       mov ax,4c00h
       int 21h

codesg ends
end start          




这是这个例题的代码

xiaop8371992 发表于 2011-7-16 21:05:29

截图是在mov bx,0的上一步

在代码
dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
之后,截图中第二三行:1407:0000和1407:0000应该全是0啊

abc8999 发表于 2011-7-16 21:05:43

本帖最后由 abc8999 于 2011-7-16 21:06 编辑

这个应该是12.11章单步中断的知识

在单步中断中会PUSH PSW,PUSH CS,PUSH IP.但是DOS中的单步中断原理王老师一带而过,可能因为这是底层吧

欢迎LX补充

xiaop8371992 发表于 2011-7-16 21:06:31

写错了,
应该是1407:0010和1407:0020那两行应该全是0

xiaop8371992 发表于 2011-7-16 22:59:37

谢谢8楼的解答,我现在才看到第7章,在这个问题中这一段内存的改变不会影响结果,在其他的问题中是不是可能会影响到,这个问题在书的后面会考虑的是吧

abc8999 发表于 2011-7-17 00:10:11

xiaop8371992 发表于 2011-7-16 22:59 static/image/common/back.gif
谢谢8楼的解答,我现在才看到第7章,在这个问题中这一段内存的改变不会影响结果,在其他的问题中是不是可能 ...

后面没有解释这..因为这里对答案无影响

只是用中断的知识可以解释一下

xiaop8371992 发表于 2011-7-17 00:18:15

嗯,好的,谢谢你啊,我还得加把劲看啊,暑假想把汇编学一下,下学期要学微机原理,我随便翻了一下,感觉很多用了汇编的知识。。

鱼C# 发表于 2011-7-17 00:24:53

汇编速成的啊,一个多星期可以速成、、但是现在觉得蛮难的啊,也许看得太快的缘故哦:o

xiaop8371992 发表于 2011-7-17 00:55:48

以后用多了应该就能熟练了吧,任重道远啊

tmlnsc 发表于 2011-7-19 23:53:43

我试了一下,那两行全是0啊,你再试几次看结果如何?
页: [1]
查看完整版本: 用debug跟踪程序6.3时发现的问题