3.1第三题
前面两道题我都做得没问题,但是第三题我认为我们定义这个段是数据,那么他就是数据,定义他是代码,那么他就是代码,我看了小甲鱼老师的参考答案以后,就很不解,DS不是内存的段地址吗?
CS不是段地址吗,指定的不是位置吗?
怎么理解DS指向的是数据段,而CS是代码段呢
DS:data segment (数据段)
CS: code segment (代码段)
学到第六章就懂了 这是CPU内部设计的,如果CPU是通过DS寄存器指向的段地址去取数据,那么CPU就就认为该数据为数据,同理,如果CPU是通过CS寄存器指向的段地址去取数据,那么CPU就就认为该数据为代码(指令) 我说说吧,我说的不好勿怪啊 呵呵。计算机中呢全是些0,1之类的,翻译成16进制后就是什么123.。。def了,所以呢cs指针 嗯,其实就是cs:ip指的地方和ds[ ]指的地方的东西都是一样的,就是些123.。。def了,那么计算机是怎么运行的呢。虽然被指向的东西是一样的,但是若由CS指到了,那么这些123.。。def就会被翻译成什么mov,add之类的了,若是由ds指到呢,就还是123.。。def了,仍然是数据。 本帖最后由 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
CS指向的是内存的命令地址
DS指向的是内存的数据地址
你就CS:IP想成转到某地址需要用到的。
DS就想成取某地址内的数据用到的。
页:
[1]