ds和cs这2个寄存器区别是什么啊
一直纠结这个问题,在百度上也没有找到满意的答案,他们都是段地址嘛,为什么还要用2个寄存器,偏移地址为什么不用2个寄存器 cs好像默认是栈的段地址,默认和ip配合使用ds是默认的数据段的段地址,默认段地址是bx
这是我的理解
本帖最后由 54085256 于 2013-1-19 15:05 编辑
cs是代码段寄存器 ds是数据段
cs:ip 指向的地址机器认为是代码
DS:偏移 指向的机器认为是数据
cs:ip 指向0000:0000 机器认为是指令
ds:bx指向0000:0000机器认为是数据
54085256 发表于 2013-1-19 15:01 static/image/common/back.gif
cs是代码段寄存器 ds是数据段
cs:ip 指向的地址机器认为是代码
楼上正解! 首先,ds和cs是段寄存器,用来存放段地址的,之所以有4个段寄存器,是CPU的设计者为了方便而设计了,比如说cpu吧CS:IP所指向的内存单元的内容当做要执行的指令,ds:当做是数据段,有一些东西是CPU默认的,不要钻牛角尖啊{:5_109:} cs是代码段寄存器
ds是数据段寄存器
cs是用来存放代码段的段地址
ds是用来存放数据段的段地址
如果你非要把数据段的东西写到代码段去那也可以,但是这样看程序代码的时候思路就有点复杂了,分这么多段寄存器只是为了我们更好的理解代码,比如我们的电脑分C盘、D盘、E盘等等,其实都是一样的,分这么多盘只是为了我们方便区分那些文件放在那里而已,如果你把所有文件都放一个文件夹下面、当你要找文件的时候你容易找吗? 路过,学习了。。谢谢各位。 同志,你好好看书没有,cs是程序段,ds是数据段,能一样么,地址都不一样。
页:
[1]