我想问一下8086中,任意时刻cpu将cs:ip指向的内容当做指令执行

那么ds干嘛呢

第1个回答  2008-12-05
cs:ip指向的是程序要执行的代码段,而当程序代码要读取数据时就要从数据段中读取数据,这时就要用到ds了,数据段的地址在ds中。

段的综述
我们可以将一段内存定义为一个段,用一个段地址指示段,用偏移地址访问段内的单元。这完全是我们的安排。
用一个段存放代码,即代码段
用一个段存放数据,即数据段
用一个段当栈,即栈段
对于数据段,把段地址放在ds中,用mov,add,sub等访问内存单元的指令时,cpu就将我们定义的数据段内容当做数据来访问;
对于代码段,把段地址放在cs:ip中,用mov,add,sub等访问内存单元的指令时,cpu就将执行我们定义的代码段的指令;
对于栈段,把段地址放在ss:sp中,用push pop 等访问内存单元的指令时,cpu就将其当作堆栈来访问;
debug的t命令在执行修改器ss的指令时,下一条指令也紧接着被执行了。

参考资料:http://blog.csdn.net/zhuchunjian/archive/2008/10/03/3014699.aspx

本回答被提问者采纳
相似回答