编程新手 发表于 2011-12-22 16:42:29

鱼C老师或各位鱼友,我在实验4里遇到了点问题

这是实验4,第3小题的我写的代码

assume cs:code

code segment

start:   mov ax,cs;   //我这里能写成cs不,编译是没错误的

   mov ds,ax

   mov ax,0020h

   mov es,ax



   mov bx,0

   mov cx,1ch   //这里是我故意写成整个代码段的长度

s:   mov al,

   mov es:,al

   inc bx

   loop s



   mov ax,4c00h

   int 21h

code ends

end start


file:///D:/我的文档/My
你看下倒数第5个数据,跟机器码上的不一样

编程新手 发表于 2011-12-22 16:43:36

晕,发不出本地截图,只能自己手打了

编程新手 发表于 2011-12-22 16:49:47

明明MOV AX,4C00H,INT 21,在DEBUG里用U命令显示的5个长度的机器码是B8 00 4C CD 21 这5个,但用D命令查看20:0的内存数据,这5个数据却是CC 00 4C CD 21,请问下这是怎么回事

编程新手 发表于 2011-12-22 16:56:10

题目(3) 下面的程序的功能是将“mov ax,4c00h”之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
本文来自:鱼C工作室<a href=http://www.fishc.com>详细出处参考:http://www.fishc.com/a/kehouti/_huibianyuyan_/828.html

编程新手 发表于 2011-12-22 16:57:04

题目(3) 下面的程序的功能是将“mov ax,4c00h”之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。

ytrfamli 发表于 2011-12-22 17:21:52

喔,非常有趣的问题...

看起来似乎是使用g命令一次到位才这样,单部调试(漫累的,汗)一切正常.
如果你用u命令来查看,原本mov ax,4c00处的指令变为 int 3h,
应该是debug程序为了调试而暂时改变了该行指令,但是因为使用了g指令
使得指令还没有被还原就被放到es:指向的内存去了,
估计int 3h是类似设置断点之类(停在该行)的中断指令

LZ很有实验精神阿,相信汇编能学的不错的,加油~

呃,还有,其实每一楼的下方都有一个编辑按钮的,可以修改那一楼的内容,
就不会造成每一次加点补充就多一楼.

编程新手 发表于 2011-12-22 20:09:53

我没有使用G命令呀,我是按T一步步下来的

ytrfamli 发表于 2011-12-22 20:23:45

恩??那我就不清楚了...
我t单步调试一切正常阿..0x1c=十进制28,一路这样按下来,到CX=0005时
DEBUG显示应该是

MOV AL,      DS:0017=B8

B8即是MOV AX,4C00H指令的起始字节.
反之如果我使用g命令或是在LOOP指令处用p指令越过去,
用d指令查看es:0开始的内存内容就会遇到你的结果

无解了...有请潜水的高手们...

编程新手 发表于 2011-12-22 20:53:16

int 21h,我用DEBUG调试到这一步,然后再T了一下,而不是按P,然后在看其内存的。你试下

ytrfamli 发表于 2011-12-22 21:21:40

int 21h,我用DEBUG调试到这一步,然后再T了一下,而不是按P,然后在看其内存的。
这...不会影响结果吧??指令来到int 21h,所有对於es:写入的指令已经完成,
在这个时候使用t或是p,差别只是有没有进入int 21h中断
(t就是进入,p就是当程序准备执行下一行时停下).

有差别的话(就我而言)只有你调试时是如何走过MOV AX,4C00h指令的,
1)g 17 ->停在MOV AX,4C00h处 ->DEBUG调换该行为int 3h,程序因此复制到es段时开头变成CC

2)一开始用t指令,遇到Loop指令时按下p跳过,因为同样是停在MOV AX,4C00h处,所以结果同上

3)一路都是t,没有别的 ->
下一行暂时调换为int 3h
程序执行当前行
程序执行int3h而停下
恢复原本指令
DEBUG显示该行资讯
因此程序复制正确的字节B8到es段

结果还是对不上我就没辄了...

编程新手 发表于 2011-12-23 09:16:44

待会我在看看吧,谢谢你了

编程新手 发表于 2011-12-23 10:18:57

加我下好友,我发我的调试截图给你看下
页: [1]
查看完整版本: 鱼C老师或各位鱼友,我在实验4里遇到了点问题