將源操做數加載到機器狀態字,即寄存器 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(錯誤代碼) - 若是發生頁錯誤。