. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  ds 与cs有什么区别?  [待解决] 回复[ 13次 ]   点击[ 849次 ]  
ava
[帖 主]   [ 发表时间:2007-11-22 12:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-11-15 22:20
他们不都是段寄存器吗,为什么存放的数据不一样啊
fishboy
[第1楼]   [ 回复时间:2007-11-22 14:33 ]   [引用]   [回复]   [ top ] 
荣誉值:283
信誉值:0
注册日期:2007-06-26 11:42
段寄存器就要放一样的数据吗?
那样还要多个段寄存器干嘛啊。
cs是值cpu执行的当前指令的段地址,ds是数据开始的段地址。但是也不是很绝对准确的说法。
具体的,楼主多编两个程序就明白了。
gocker
[第2楼]   [ 回复时间:2007-12-29 11:50 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54
CS是告诉CPU,去哪个位置找内容当成指令去执行
DS是告诉CPU,去哪个位置找内容当成数据被使用
gocker
[第3楼]   [ 回复时间:2007-12-29 11:50 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54
datastring=ds
codestring=cs
明白了没
虽然缩写可能有误
但表达的意思是没错的
gocker
[第4楼]   [ 回复时间:2007-12-29 12:23 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54
最新答复
MOUSE的回答
ds是data segment  
cs是code segment
mouse
[第5楼]   [ 回复时间:2008-01-06 15:19 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
嘿嘿,在这见了我的回复,支持一下;-)
lawry
[第6楼]   [ 回复时间:2008-01-06 17:27 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:0
注册日期:2008-01-05 15:02
呵呵
楼主的问题有点像 男人和女人的问题,虽然都是人,但还是有分别的
CPU要执行CS中的指令 指令用到的数据可能就存放在DS中。
你可以把数据放到CS中 但是CPU并不把它当成数据来使用,你也可以把指令放到DS中,但是CPU根本不去DS里读指令
qing4555
[第7楼]   [ 回复时间:2008-01-16 10:30 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-01-11 11:03
希望知道如DS是DATA SEGMENT,这类解释.这样记忆起来方便一些.
tobedn
[第8楼]   [ 回复时间:2011-02-09 14:46 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-01-30 23:11
我觉得2楼说的比较贴切
jikeyuan1
[第9楼]   [ 回复时间:2011-02-10 13:19 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-02-07 15:40
cs指令寄存器  ds数据寄存器 
cs:ip指示将要执行的指令
ds标志的是段地址  一般cpu自动查看ds中的段地址
binbr
[第10楼]   [ 回复时间:2011-02-16 12:50 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-02-15 16:28
CS 代码寄存器 <编程代码啥的>
DS 数据寄存器 <内存里的数据>
  我是这样子理解的. 
如有不对 还请大牛指正.
jxqx
[第11楼]   [ 回复时间:2011-02-25 21:32 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2010-01-31 14:25
CS--指令
DS--数据

CS:IP--指向指令
DS--段地址

不管是CS还是DS在内存中都是以二进制数来表示,而CPU就是靠CS与DS来分辨是指令还是数据;假若我在CS中放入数据,CPU会把这当成是指令来执行,而这会导致出错,反之DS也一样。所以总的一点就是,CS中为指令DS中为数据,要放指令就存入CS中要放数据就存入DS中。

不知道我的答案够不够牛
a2163923
[第12楼]   [ 回复时间:2011-06-12 22:29 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-06-23 09:27
2楼正解!!!!
askyouily
[第13楼]   [ 回复时间:2011-08-26 19:26 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2008-03-14 15:08
在冯洛依曼计算机里,指令和数据都放在一个存储器里,但为了不混淆2者,就由CS和DS来指向内存中的指令和数据。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved