2015-11-19 142 views
0

對不起,如果我問一個太愚蠢的問題!但我GOOGLE了,並找不到任何答案。註冊狀態在彙編語言編程中意味着什麼。註冊狀態是什麼意思?

+1

「狀態」 - 某些環境的當前狀況。例如「騷亂髮生後,體育場處於一個糟糕的狀態」。寄存器狀態=在某個時間點的一組寄存器的當前值。 –

+0

謝謝!我現在明白了。 – PeaceOut

+0

在一般情況下,「寄存器狀態」通常意味着所有計算機寄存器的狀態和值(通常是當前標誌)。 –

回答

0

Register states:

的TSS可含有保存所有的x86寄存器的值。這用於任務切換。操作系統可以使用新任務需要的寄存器的值來加載TSS,並且在執行硬件任務切換(例如利用IRET指令)之後,x86 CPU將從TSS加載保存的值到適當的寄存器中。請注意,某些現代操作系統(如Windows和Linux 1)在TSS中不使用這些字段,因爲它們實現軟件任務切換。

0

可能是指狀態寄存器或狀態字。

在許多處理器中,有一些一位值會影響行爲應該是什麼。例如,通常有一個「進位」位,一個「溢出」位,一個「零」位,一個「負」位等等。這些狀態位可能會根據最近的數學運算或執行的比較而發生變化,並且可能會影響條件跳轉的表現。

也可能存在比較「粘性」的位,即它們只能用顯式設置指令改變並影響處理器行爲(例如「十進制」位或「中斷使能」位)。

所有這些一位值通常存儲在一個寄存器中。

+0

感謝它幫助! – PeaceOut

0

我還沒有聽說過「註冊狀態」這個詞。這聽起來像是Architectural state的一個子集或同義詞。描述它的一種方式是需要在上下文切換上保存/恢復的所有內容。它是整數/通用寄存器,指令指針(下一個要執行的指令),標誌寄存器,FPU寄存器,向量寄存器以及代碼可以設置的任何/所有「特殊」寄存器的內容,修改CPU的操作。

它的確如此不是包括緩存的內容或主存的內容。

機器的ISA是根據每條指令對架構狀態所做的定義來定義的。 (例如,add r32, r/m32將src(reg或memory)添加到dest寄存器中,並根據結果設置標誌,在特定條件下也會產生異常,例如,請參閱英特爾的手冊,鏈接自標籤wiki 。

實際執行流水線執行,甚至一次運行多條指令,但以一種給出相同結果的方式跟蹤執行每條指令的順序(VLIW architectures,其中機器碼錶示執行的指令集)

Intel SandyBridge使用一個包含160個整數寄存器的物理寄存器文件來進行寄存器重命名,但是架構師硬件線程的ural狀態仍然只包括16個GP寄存器(或8個,32位模式),16個或8個向量寄存器等等。