鱼C论坛

 找回密码
 立即注册
查看: 2436|回复: 16

菜鸟上路求解答

[复制链接]
发表于 2013-5-10 22:50:42 | 显示全部楼层 |阅读模式
1鱼币
1.jpg
如图他的地址在10000H
我在 2.jpg 写入完毕
为什么我可以在cs指向的地址可以输入代码,而且效果还不变,不应该是在1000 这里开始输入代码吗?

最佳答案

查看完整内容

其实很简单:你在037F:0100输入的指令,他们的地址为CS:IP,你看,你在-r时的CS、IP就是你输入指令时的地址……而你在1000:0输入数据时并没有改变CS、IP的值啊~·
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-5-10 22:50:43 | 显示全部楼层

其实很简单:你在037F:0100输入的指令,他们的地址为CS:IP,你看,你在-r时的CS、IP就是你输入指令时的地址……而你在1000:0输入数据时并没有改变CS、IP的值啊~·
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-10 22:58:07 | 显示全部楼层
难道mov ax,1000  就是从1000开始 么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-10 23:27:32 | 显示全部楼层
他把1000赋予给了段地址,因为不能把1000直接放到ds中,要通过寄存器ax做中介。其实我不懂你要问什么,反正就是这么个道理- -
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-11 01:04:10 | 显示全部楼层
每台明白楼主想问的是什么?ds是数据段,代码一般都是放在cs段,这段代码的意思是指定1000h为ds段地址,然而代码本身所占的空间就不是地址了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-11 11:37:54 | 显示全部楼层
我的问题如图 3.jpg 其实我想问的就是这个问题 为什么可以在037f:100 可以输入汇编代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-11 13:11:02 | 显示全部楼层
aa66foxmail 发表于 2013-5-11 11:37
我的问题如图 其实我想问的就是这个问题 为什么可以在037f:100 可以输入汇编代码

为什么不可以,在不报错的情况下,你想写在哪里就在哪里。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-11 13:21:16 | 显示全部楼层
aa66foxmail 发表于 2013-5-11 11:37
我的问题如图 其实我想问的就是这个问题 为什么可以在037f:100 可以输入汇编代码

你能明白你写的代码所占用的地址,跟你代码里面那个地址是两回事就好了。代码里面是说要把存放在ds:[0]之中的数据保存在寄存器之中,当然执行完之后你ds:[0]里面的内容肯定不会变。我估计你是还弄不明白代码段和数据段的概念,才会这么问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-11 22:48:37 | 显示全部楼层
ax,bx,cx.....这是通用寄存器,而ds是段寄存器,地址不能直接到段寄存器,而是用通用寄存器地址储存起来,再交给DS,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-11 23:06:38 | 显示全部楼层
为什么不可以,你的起始位置是037f:1000,那么你写的命令也只能从037f:1000开始执行,可以改一下起始地址:
r ds
Ds:XXXX
:037f  
r ip
IP : XXXX
:0100
然后用D命令排列
D 037F:0100
......用同理的方法改为1000
[img]file:///C:/Users/jh/AppData/Roaming/Tencent/Users/981577696/QQ/WinTemp/RichOle/D999TR7R[M)NU_9(C%7BT30CR.jpg[/img]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-11 23:08:15 | 显示全部楼层
就是这个
D999TR7R[M)NU_9(C{T30CR.jpg
D999TR7R[M)NU_9(C{T30CR.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-11 23:59:12 | 显示全部楼层
我想楼主是把debug和编译器弄混了吧~~!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-12 07:40:31 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-12 13:39:00 | 显示全部楼层
谢谢大家,我也弄明白了 好好复习了下基础知识 谢谢大家
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-13 09:42:13 | 显示全部楼层
加油吧,楼主啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-13 17:51:54 | 显示全部楼层
我只是路过打酱油的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-17 18:31:52 | 显示全部楼层
ds是数据段,存放的是数据;而cs是代码段,存放的是指令啊。而你写指令是在代码段写的------和数据存储搭不上边啊。也就是说:只要你不让代码与数据地址相重合,他们就在两个空间互不干扰!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 14:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表