首页 > 其他 > 详细

lmsw - 加载机器状态字

时间:2014-03-21 16:33:25      阅读:463      评论:0      收藏:0      [点我收藏+]

  将源操作数加载到机器状态字,即寄存器 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 段限制。

虚 8086 模式异常

#GP(0) - 如果当前特权级别不是 0。如果内存操作数有效地址超出 CS、DS、ES、FS 或 GS 段限制。

#SS(0) - 如果内存操作数有效地址超出 SS 段限制。

#PF(错误代码) - 如果发生页错误。

lmsw - 加载机器状态字,布布扣,bubuko.com

lmsw - 加载机器状态字

原文:http://www.cnblogs.com/coderCaoyu/p/3616114.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!