【发布时间】:2018-09-15 08:57:33
【问题描述】:
如果我们使用汇编语言中的所有寄存器,那么我的 CPU 将使用什么?我的意思是寄存器被划分为CPU可以独立使用,我们也可以独立使用它
【问题讨论】:
-
什么?寄存器可以独立使用,是的。如果他们分享他们的记忆,那将毫无意义。
-
您是否正在考虑使用 C 或其他方式进行 inline 汇编,并想知道 compiler 还可以使用什么?编译器生成的和手写的代码都使用寄存器并在 CPU 上运行,就像您手动编写整个函数一样。一些编译器会阻止您声明 clobbers 或使用 all 寄存器作为输入/输出操作数。
-
CPU 有寄存器,“你”没有寄存器。如果您在汇编中使用一些寄存器,那么您正在使用 CPU 的寄存器。如果你使用所有这些,你就会使用所有它们。它没有什么“独立”,CPU中的寄存器就像“超级全局”,在特定时间只有一个实例(即使现代操作系统在不同任务之间切换,它也必须使用特殊的指令序列来保存当前状态旧线程/进程的寄存器,并为要切换到的线程/进程加载寄存器的先前状态,否则将无法进行多任务处理)。