【问题标题】:Registers and Assembly Language寄存器和汇编语言
【发布时间】:2018-09-15 08:57:33
【问题描述】:

如果我们使用汇编语言中的所有寄存器,那么我的 CPU 将使用什么?我的意思是寄存器被划分为CPU可以独立使用,我们也可以独立使用它

【问题讨论】:

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

标签: assembly cpu-registers


【解决方案1】:

寄存器存储用于计算的临时值。所有其他数据都存储在外部存储器中。外部内存可以以不同的方式缓存,但总是比寄存器慢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 2012-01-19
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多