lmsw - 加載機器狀態字

  將源操做數加載到機器狀態字,即寄存器 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) 四、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 段限制。

虛 8086 模式異常

#GP(0) - 若是當前特權級別不是 0。若是內存操做數有效地址超出 CS、DS、ES、FS 或 GS 段限制。

#SS(0) - 若是內存操做數有效地址超出 SS 段限制。

#PF(錯誤代碼) - 若是發生頁錯誤。

相關文章
相關標籤/搜索