Dean 发表于 2012-5-11 21:23:39

3.1第三题

前面两道题我都做得没问题,但是第三题我认为我们定义这个段是数据,那么他就是数据,定义他是代码,那么他就是代码,我看了小甲鱼老师的参考答案以后,就很不解,
DS不是内存的段地址吗?

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


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

花落、季 发表于 2012-5-11 22:17:34

DS:data segment (数据段)
CS: code segment (代码段)
学到第六章就懂了

楚门 发表于 2012-5-12 03:06:01

这是CPU内部设计的,如果CPU是通过DS寄存器指向的段地址去取数据,那么CPU就就认为该数据为数据,同理,如果CPU是通过CS寄存器指向的段地址去取数据,那么CPU就就认为该数据为代码(指令)

返璞归真 发表于 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了,仍然是数据。

leebox 发表于 2012-5-12 23:59:39

本帖最后由 leebox 于 2012-5-13 00:03 编辑

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


退聊人物;战孜瞳 发表于 2012-5-13 12:57:13

CS指向的是内存的命令地址
DS指向的是内存的数据地址

你就CS:IP想成转到某地址需要用到的。
DS就想成取某地址内的数据用到的。
页: [1]
查看完整版本: 3.1第三题