cs 和 ds 的问题
本帖最后由 loop 于 2011-4-17 04:39 编辑cs 是存放代码地址的段寄存器
ds 是存放数据的段寄存器
当用当用bx,si,di作为偏移地址时,默认的段地址在ds中
那么在用debug时
-a 的时候是输入代码
觉得此时应该是取段地址cs+偏移地址IP的值
为什么此时却取的是ds的地址?
如图
为什么不是
2000:0100
而是0b50:0100 本帖最后由 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 指定键入汇编语言指令的位置。
我是菜鸟! 我的意思是 -a 的时候应该跟cs走
实际上默认的时候也没用cs的段地址,也没用ds的段地址
我把cs ,ds 都改变
默认的情况还是指向初始的地址
不知道那地址是哪来的
加偏移地址的时候,才取的是cs的段地址
就像你说的,默认的东西无需纠结,哈哈
不过还是感觉挺纠结谢谢你的回复
页:
[1]