操作碼 |
指令 |
說明 |
0F 01 /6 |
LMSW r/m16 |
將 r/m16 載入到 CR0 的機器狀態字 |
將源運算元載入到機器狀態字,即暫存器 CR0 的位 0 到 15。源運算元可以是 16 位通用暫存器或記憶體位置。只有源運算元的低 4 位(也就是 PE、MP、EM 及 TS 標誌)會載入到 CR0。CR0 的 PG、CD、NW、AM、WP、NE 及 ET 標誌不受影響。運算元大小屬性不影響此指令。
如果源運算元的 PE 標誌(位 0)設定為 1,則指令導致處理器切換到保護模式。處於保護模式時,不能使用 LMSW 指令清除 PE 標誌,並強制切換回實地址模式。
提供的 LMSW 指令用於操作系統軟體;不應該在應用程式中使用它。在保護或虛 8086 模式中,此指令只能在 CPL 0 級別執行。
提供此指令是爲了同 Intel(R) 286 處理器保持相容;對於要在奔騰(R) 4、P6 系列、奔騰、Intel486 及 Intel386 處理器上執行的程式與過程,應該使用 MOV(控制暫存器)指令載入整個 CR0 暫存器。MOV CR0 指令可用於設定或清除 CR0 中的 PE 標誌,從而讓過程或程式在保護與實地址模式之間轉換。
此指令是序列化指令。
CR0[0:3] SRC[0:3];
無。
#GP(0) - 如果目前特權級別不是 0。如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。如果 DS、ES、FS、或 GS 暫存器用於訪問記憶體,並且它包含空的段選擇器。
#SS(0) - 如果記憶體運算元有效地址超出 SS 段限制。
#PF(錯誤程式碼) - 如果發生頁錯誤。
#GP - 如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。
#GP(0) - 如果目前特權級別不是 0。如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。
#SS(0) - 如果記憶體運算元有效地址超出 SS 段限制。
#PF(錯誤程式碼) - 如果發生頁錯誤。