Computer science 可执行文件中的程序计数器与主存中的程序计数器之间的差异

Computer science 可执行文件中的程序计数器与主存中的程序计数器之间的差异,computer-science,computer-architecture,Computer Science,Computer Architecture,可执行文件中的程序计数器和主存中的程序计数器有什么区别 我的教授举了一个关于可执行文件中的程序计数器及其十进制值的例子,他写道,PC机每指令递增4 像这样: 万 0004 0008 那么主存中的程序计数器呢?它们的十进制值是什么样的?它们是否与上述值相同 谢谢大家! 内存中没有“程序计数器”。您可能指的是物理和虚拟内存寻址 当你编写和编译一个程序时,你这样做就好像你拥有了自己的全部内存空间。您不关心在同一系统上运行的其他程序,也不担心写入其他程序的内存空间或其他程序写入您的内存空间。怎么样 这就

可执行文件中的程序计数器和主存中的程序计数器有什么区别

我的教授举了一个关于可执行文件中的程序计数器及其十进制值的例子,他写道,PC机每指令递增4

像这样:
  • 0004
  • 0008
  • 那么主存中的程序计数器呢?它们的十进制值是什么样的?它们是否与上述值相同


    谢谢大家!

    内存中没有“程序计数器”。您可能指的是物理和虚拟内存寻址

    当你编写和编译一个程序时,你这样做就好像你拥有了自己的全部内存空间。您不关心在同一系统上运行的其他程序,也不担心写入其他程序的内存空间或其他程序写入您的内存空间。怎么样

    这就是所谓的。每个程序都有自己的虚拟内存空间。程序中的所有地址,无论是指令地址(如程序计数器中的地址)还是数据地址,都在该虚拟内存空间中。另一方面,您的系统有一个实际的物理内存空间,所有程序都将驻留其中。这些空间之间的转换由操作系统完成(可能还有处理器本身的一些支持,具体取决于体系结构。x86处理器使用名为TLB的结构来支持虚拟到物理地址的转换)


    您的程序有一个程序计数器,它位于程序的虚拟地址空间中,但在主存中使用物理地址空间对其进行寻址

    嗯-通常每个线程只有一个程序计数器,并且-除非该线程被挂起-它位于CPU寄存器中。我只是想知道可执行文件中的程序计数器和主存中的程序计数器之间的区别。我不理解你们的问题。它们只是与程序的每个线程相关联的一个程序计数器。@Rishit,我的教授对此有一个问题。。。所以,我想它们应该是一样的,因为可执行文件中的PC和主内存中的PC没有区别吗?@David是的,它们是一样的。我猜教授可能讨论的是地址空间。在可执行文件中,PC有一个虚拟地址,而在主存中它有一个物理地址。否则就没有区别了。