鱼C论坛

 找回密码
 立即注册
查看: 4374|回复: 2

cs 和 ds 的问题

[复制链接]
发表于 2011-4-12 13:32:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 loop 于 2011-4-17 04:39 编辑

cs 是存放代码地址的段寄存器
ds 是存放数据的段寄存器

当用当用bx,si,di作为偏移地址时,默认的段地址在ds中

那么在用debug时
-a 的时候是输入代码

觉得此时应该是取段地址cs+偏移地址IP的值
为什么此时却取的是ds的地址?

如图
为什么不是
2000:0100
而是0b50:0100
111.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-13 10:45:22 | 显示全部楼层
本帖最后由 shangyl00 于 2011-4-13 11:18 编辑

我是菜鸟!
你说的没错,最后一句错了,应该问------为什么取得是CS。
为什么这么说,按你的说法-a的地址跟ds走啦,你可以改下ds为2000,看是不是-a为2000,应该不是。
貌似-a时,Debug程式并没有因你改动CS指向而改动-a默认地址。也没有因改动ds指向而改动
这应该是Debug程式默认的缘故吧,你如果想在2000处修改只能-a 2000:0 类似这样喽~
看下我附上的关于a指令的解释,本身就是需要加上address,默认的东西无需纠结!个人理解,欢迎批评!
附上
a [address]
参数 address 指定键入汇编语言指令的位置。
我是菜鸟!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-4-13 17:57:40 | 显示全部楼层
我的意思是 -a 的时候应该跟cs走
实际上默认的时候也没用cs的段地址,也没用ds的段地址
我把cs ,ds 都改变
默认的情况还是指向初始的地址
不知道那地址是哪来的
加偏移地址的时候,才取的是cs的段地址
就像你说的,默认的东西无需纠结,哈哈
不过还是感觉挺纠结谢谢你的回复
11.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-18 18:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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