鱼C论坛

 找回密码
 立即注册
查看: 2303|回复: 5

3.1第三题

[复制链接]
发表于 2012-5-11 21:23:39 | 显示全部楼层 |阅读模式
2鱼币
前面两道题我都做得没问题,但是第三题我认为我们定义这个段是数据,那么他就是数据,定义他是代码,那么他就是代码,我看了小甲鱼老师的参考答案以后,就很不解,
DS不是内存的段地址吗?

CS不是段地址吗,指定的不是位置吗?


怎么理解DS指向的是数据段,而CS是代码段呢

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-11 22:17:34 | 显示全部楼层
DS:data segment (数据段)
CS: code segment (代码段)
学到第六章就懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-12 03:06:01 | 显示全部楼层
这是CPU内部设计的,如果CPU是通过DS寄存器指向的段地址去取数据,那么CPU就就认为该数据为数据,同理,如果CPU是通过CS寄存器指向的段地址去取数据,那么CPU就就认为该数据为代码(指令)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-12 16:34:36 | 显示全部楼层
我说说吧,我说的不好勿怪啊 呵呵。计算机中呢全是些0,1之类的,翻译成16进制后就是什么123.。。def了,所以呢cs指针 嗯,其实就是cs:ip指的地方和ds[ ]指的地方的东西都是一样的,就是些123.。。def了,那么计算机是怎么运行的呢。虽然被指向的东西是一样的,但是若由CS指到了,那么这些123.。。def就会被翻译成什么mov,add之类的了,若是由ds指到呢,就还是123.。。def了,仍然是数据。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-12 23:59:39 | 显示全部楼层
本帖最后由 leebox 于 2012-5-13 00:03 编辑

cs:ip             指向的就是 程序
DS:偏移地址  就是指向数据
数据是 高高低低读的   B8 17 17  8E   就应该是17b8 8E17
程序是 顺序读的   B8 17 17 8E 就应该是  B8 17 17 8E 就是 mov ax,1717  mov ss                                                            


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-13 12:57:13 | 显示全部楼层
CS指向的是内存的命令地址
DS指向的是内存的数据地址

你就CS:IP想成转到某地址需要用到的。
DS就想成取某地址内的数据用到的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 10:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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