【发布时间】:2017-07-24 07:13:09
【问题描述】:
许多寄存器(如数据寄存器)包含对应于当前正在执行的进程的值。但是,有一些寄存器对于所有进程都是通用的
我想读取一些非进程特定的寄存器,可以从 2 个不同的进程访问,并且仍然能够获得相同的值。
我需要 x86-64 架构的代码。 (在我的桌面上键入时,这 3 个命令 uname -m,-p,-i 返回 x86_64)
谢谢。
【问题讨论】:
-
好的,您需要处理器的用户手册、操作系统的源代码、汇编程序和一些运气。请注意,即使存在这种机制,通常也不是进程通信的方式。如果三个进程希望通过这种机制进行通信会发生什么?
-
你能定义哪些寄存器是“控制寄存器”吗?因为 PC 和 SP 对于不同的进程肯定包含不同的值。
-
这通常使用系统调用来完成,这样代码就可以在不同的处理器之间移植。
-
请选择 C 和 Python 之一。我不会和你玩“那不是我真正想要的编程语言”的游戏。
-
我已将“64 位架构”更改为“x86-64 架构”。 x86-64 是众多 64 位架构之一,但从您的帖子来看,它是最有可能的一种。好的!现在我可以准备答案了。
标签: c assembly x86 x86-64 cpu-registers