被问到这个问题,存档一下自己的理解。
以8086为例。
PC:程序计数器地址指针,用以指示下一条指令的内存地址。
CS:IP:CS和IP是CPU内的寄存器,CS为代码段寄存器,IP是指令指针寄存器。CS:IP一起可以确定当前所要取的指令的内存地址。顺序执行程序时,CPU每取一个指令字节,IP自动加1,指向下一个要读取的字节。
那么,这么看来,PC和CS:IP实现的功能并无差异,但他们也是有细微区别的:
PC是模型机中的概念,而CS和IP是CPU中实际存在的寄存器,CS:IP所计算出的,其实就是PC的值。
参考文献: