为什么CS:IP所指的指令是下条要执行的指令?

xydxzhcn 2011-11-15 05:59:51
执行指令时不是从指令队列取指令吗,而指令队列里不只一条指令,为什么还说CS:IP所指的指令是下条要执行的指令?
...全文
416 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
glouze 2011-11-27
  • 打赏
  • 举报
回复
4楼 5楼 谢谢,学习了
xydxzhcn 2011-11-25
  • 打赏
  • 举报
回复
恩,谢谢了
masmaster 2011-11-18
  • 打赏
  • 举报
回复
cs:ip的作用只是指向的是下一条指令的所在地址,这期间还有经过取值译码等很多步骤。
天机阁主 2011-11-18
  • 打赏
  • 举报
回复
CS:IP指向下一条要执行的指令,至于指令队列里的指令是为了减少取指令的时间,不由CS:IP负责
辰岡墨竹 2011-11-18
  • 打赏
  • 举报
回复
CPU的总线部件总是先从CS:IP地址读一条指令,然后再给它加一,所以你看到的总是CPU将要读的下一条指令。
不过不能保证CPU正在干什么。
辰岡墨竹 2011-11-18
  • 打赏
  • 举报
回复
CS:IP的确指向的是CPU下一次要读取的指令的位置。
指令队列在CPU内部,比CS:IP更内部,所以光看CS:IP这个只能指示下一次要执行的外部内存的地址,你无法知道CPU正在执行那条指令的,这种东西没有公开。
早期的CPU有16个字节左右的指令队列,内部的执行单元执行的指令都是从这个队列里取。现在新的CPU还支持伪指令融合、乱序执行之类的。所以,指令一但进入CPU后,具体执行顺序就十分复杂,有可能不是顺序的,也可能出现指令微操作融合等各种情况。
xydxzhcn 2011-11-15
  • 打赏
  • 举报
回复
CS:IP所指的指令先存放在指令队列,
执行单元在指令队列取指令去执行,
那么执行当前指令时CS:IP就有可能指向当前指令后的第3条等指令了,
但是在DEBUG上看,为什么CS:IP总是显示当前指令的后一条呢???

我不太明白,谁说下嘛?
xydxzhcn 2011-11-15
  • 打赏
  • 举报
回复
??
哪个 debug 看的时候 为什么CS:IP指的是下调指令? CS:IP不是该去读取其他的指令到指令队列吗?
大熊猫侯佩 2011-11-15
  • 打赏
  • 举报
回复
串行执行

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧