注册状态是什么意思?

时间:2015-11-19 21:27:58

标签: assembly

对不起,如果我问一个太傻的问题!但我用谷歌搜索,无法找到任何答案。寄存器状态在汇编语言编程中的确切含义。

3 个答案:

答案 0 :(得分:0)

Register states:

TSS可能包含所有x86寄存器的已保存值。这用于任务切换。操作系统可以使用新任务所需的寄存器值加载TSS,并且在执行硬件任务切换(例如使用IRET指令)之后,x86 CPU将把保存的值从TSS加载到适当的寄存器中。请注意,某些现代操作系统(如Windows和Linux 1)在TSS中不使用这些字段,因为它们实现了软件任务切换。

答案 1 :(得分:0)

您可能是指状态寄存器或状态字。

在许多处理器中,有一些一位值会影响行为应该是什么。例如,通常存在“进位”位,“溢出”位,“零”位,“负”位等等。例如,这些状态位可能会根据上一次数学运算或执行的比较而改变,并且可能会影响条件跳转的行为。

也可能存在更“粘滞”的位,即它们只能通过显式设置指令进行更改并影响处理器行为(例如“十进制”位或“中断使能”位)。

所有这些一位值通常存储在一个寄存器中。

答案 2 :(得分:0)

我没有听说过“注册状态”这个词。它听起来像Architectural state的子集或同义词。描述它的一种方法是需要在上下文切换中保存/恢复的所有内容。它是整数/通用寄存器,指令指针(下一个要执行的insn),标志寄存器,FPU寄存器,向量寄存器以及任何/所有“特殊”寄存器的内容,其中代码可以设置或清除位到修改CPU的操作。

包含缓存的内容或主内存的内容。

机器的ISA是根据每条指令对架构状态的作用来定义的。 (例如add r32, r/m32将src(reg或内存)添加到dest寄存器,并根据结果设置标志。它还可以在某些条件下生成异常。例如,请参阅英特尔的{{3手册},从标签维基链接。

实际实现流水线执行,甚至一次运行多个指令,但以一种方式跟踪事物,以便按程序顺序执行每条指令。 (,其中机器代码表示一起执行的指令包,是此规则的一个例外。)

VLIW architectures使用160个整数寄存器的物理寄存器文件进行寄存器重命名,但硬件线程的架构状态仍然只包括16个GP寄存器(或8位,32位模式),16或8个向量登记册等等。