当前位置首页 > 百科> 正文

可执行指令

2019-05-01 18:01:59 百科
可执行指令

可执行指令

可执行指令(executable instruction)是指机器或系统中可以执行并产生作用的指令。

基本介绍

  • 中文名:可执行指令
  • 外文名:executable instruction
  • 套用领域:计算机等
  • 实质:指令
  • 特徵:可以执行而不会产生错误
  • 涉及系统:Windows、Linux等

简介

可执行指令(executable instruction)是指机器或系统中可以执行并产生作用的指令。不同的机器或系统的可执行指令大不相同。下面将举例对可执行指令进行说明。

Windows下20个特殊的执行命令

1. systeminfo:让XP列出更多有用信息
Windows XP可以给稳定工作很长的时间。要想详细地了解这一信息,可以接入 Windows的“开始选单”,再开启“附属档案选单”中的“命令提示符”,然后在其中输入“systeminfo”这个命令。电脑就会显示出许多有用信息,其中包括了这个系统的初次安装时间,以及本次持续运行的时间。假如想要保留这些信息,可以输入“systeminfo >info.txt”,这将会创建一个名为“info.txt”文本档案,可以稍后用Windows的记事本将其打开,进行查看。(仅限于Windows XP 专业版本)
2.gpedit.msc:设定直接删除档案
可以将 Windows XP作业系统设定为直接删除档案,而不用先将这些档案转移到资源回收筒当中。进入开始选单,选择“运行……”,输入“gpedit.msc”;在弹出的对话框中,选择用户设定,管理模板,Windows 组件,Windows Explorer,找到“不要将删除的档案移送到资源回收筒”的选项。开启这个选项。
通过调整 gpedit 对话框中的相关设定,可以对系统的运行方式和选项做出很多调整,但是请一定小心——所作出的某些改变可能会系统运行出现问题,或造成系统的不稳定。(仅限于 Windows XP 专业版本)
3. rundll32.exe:用滑鼠锁定计算机
可以轻轻点击两下滑鼠,就锁定自己的 Windows XP系统。请先在桌面上点击滑鼠右键,创建一个新的捷径,然后再填写项目位置的时候, 输入“rundll32.exe user32.dll,LockWorkStation”。
然后再给这个捷径取一个喜欢的名字,比如“锁定计算机”。就是这幺简单——现在,只需要用滑鼠双击这个捷径,电脑就会马上被锁定。同时按住键盘上的“Windows 键(有XP图示的那个)”和“L”键,将会有同样的效果。
4. sysoc.inf:把隐藏的档案揪出来
Windows XP 隐藏了一些你可能想要删除或卸载的系统软体,诸如 Window非法信息essenger,但是你可以让这些软体重新显示出来。使用Windows自带的记事本或写字板程式,编辑文本档案“/windows/inf/sysoc.inf”,搜寻并删除掉关键字“hide”。然后你再进入“控制台”的“添加/删除程式”,选择“添加或删除 Windows 组件”。你可以发现所有的系统软体都被显示出来了,现在就可以卸载它们了。
5. /?:命令行的诱惑
对于那些擅长于操作DOS批处理命令的用户来说,Windows XP也为他们提供了许多有趣的新命令。其中包括用来创建和监视系统事件的“eventcreate”和“eventtriggers”命令,用来监控各种子系统的运行状态的“typeperf'”,以及用来操作计画任务的“schtasks”。
和以前一样,输入某个命令,并紧跟其后加上“/?”的后缀,将会提供一系列与这个命令相关的选项。
6. ipv6 install:XP也能玩IPv6
Windows XP 能够支持 IPv6 ——下一代网际网路的IP协定。但是非常不幸的是,这一功能超出了的网路提供商(ISP)所能支持的服务,所以只能在自己的区域网路中实验这一功能。请在“运行……”中输入命令“ipv6 install'”,然后再在命令提示符中输入“ipv6/?”,可以获得更多的相关信息。
7.tskill:试试用命令来终止任务
可以最终通过在命令提示符中输入命令“taskkill/pid”和任务序号,或者仅仅输入“tskill”以及进程的序号,来终止掉某个任务。想要找出所有正在运行中的任务及其序号?请输入“tasklist”,这个命令也可以帮助你了解到更多当前系统运行状态的信息。
8. 快慢自选:浏览ZIP压缩档
Windows XP会像对待普通资料夹一样对待ZIP压缩档案包,这一功能在运行速度较快的机器上非常的方便,但是在运行速度较慢的机器上却会拖累系统的整体运行效率。如果电脑的配置并不是很高,可以通过在命令提示符中输入命令“regsvr32 /u zipfldr.dll”来关闭这一功能 ,让 WindowsXP 把压缩档案包丢在一边。假如稍候改变了自己的主意,可以通过输入“regsvr32 zipfldr.dll”来恢复这一功能。
9. ClearType:保护你的心灵之窗
Windows XP 系统支持“ClearType”—— 微软公司的反锯齿字型显示技术 ——但是在默认设定下,这一显示效果并没有被打开。该项功能非常值得尝试,尤其是在你使用电脑多年,糟糕的电脑萤幕已经使你的双眼变得无比疲惫,视力开始急剧下降的时候。为了开启这个效果,请用滑鼠右键点击电脑桌面,在弹出选单中选择“属性”,“外观”,“效果”,从第二个下拉选单中选中“ClearType”选项,并选择开启。这样就可以期望在笔记本电脑上获得最佳的显示效果。假如你希望在WindowsXP的欢迎登录画面中也是用到“ClearType”,请将系统注册表中的“HKEY_USERS/.DEFAULT/ControlPanel/Desktop/Font非法信息oothingType”选项的值设定为2。
10. 远程协作:不再受限区域网路
可以通过 Windows XP 的远程协作功能来帮助某个正在家庭区域网路上使用网路地址转换(network addresstranslation,NAT)的朋友,虽然这不是自动完成的。让朋友传送一封远程协作邀请,然后编辑这个文本。在RCTICKET属性下,看到一个NAT IP 地址,可能是“192.168.1.10”之类的形式。用朋友真实的IP位址来替换这一区域网路地址——他们可以在 www.whati非法信息yip.com 网站上查询到自己的真实IP位址——然后让它们确
认一下自己防火墙上的3389连线埠是开启的,随后你就可以直接进入那台有问题的电脑了。
11.多用户操作:不必注销当前用户
可以不需要注销掉现有的用户身份,就以另一个用户身份运行程式。用滑鼠右键点击相应的执行程式的图示,选择“运行方式……”,然后输入想要使用的用户名及其相应的密码。该设定仅仅会被套用在这次程式运行上。当需要以系统管理员的身份来安装一个程式的时候,这个技巧就会非常有用。但是请注意,可以在系统当中同时以多个不同的用户身份运行多个程式,这样做也许会非常有趣,但是会对系统产生不可预见的效果。
12. 瞬时开始自动更新:消除等待的烦恼
Windows XP 将会非常顽固地提示你检查自动更新,注册一个微软 Passport,使用 Windows Messenger以及等等等等。虽然在一段时间过后,这种凡人的打扰信息就会逐渐消失,但是假如感觉自己等不到那个时候,请运行“Regedit”,到系统注册表的
“HKEY_CURRENT_USER/Software/microsofthttp://windows.chinaitlab.com
/CurrentVersion/Explorer/Advanced”当中,创建一个名为“Ena禁用词语eBalloonTips”的“DWORD”数值,将其的值设定为0。
13.自动登录:不必每次输入密码
选择在Windows XP启动的时候,不需要输入用户名和密码就直接进入系统桌面。请在开始选单中选择“运行”,并输入命令“controluserpasswords2”,这个命令将会开启用户账号管理程式。在“用户”标籤中,找到“为了使用这台电脑,用户必须输入用户名和密码”的选项,点击取消这个选项,并保存设定。一个自动登录设定对话框将会出现;请输入希望使用的自动登录的用户名和密码。
14. 请个保姆:自动删除临时档案
Internet Explorer 6浏览器可以自动地删除临时档案,但这需要进行相关的设定。请打开网路浏览器,选择“工具/Internet选项……”,选择“高级”,进入到“安全”区域,选取“当浏览器关闭时,清空Internet 临时资料夹”的选项,就可以了。
15. 网路情况随时掌握:体验免费网路指示灯
Windows XP 附带了一个免费的网路活动指示灯的,因为无法看见自己网卡上的 LEDs指示灯。请用滑鼠右键点击电脑桌面上“网路邻居”的图示,选择属性。再用右键点击区域网路连结或拨号连线的图示,选择属性,然后选中“连线后再通知区显示出图示”的选项。选择保存设定。然后就可以看见在自己电脑桌面的右下角的系统列当中,会出现一个小小的网路图示,并会在网路通讯激活的时候闪闪发光。
16.不再延时:打造快速开始选单
有些时候,Windows XP的开始选单的弹出速度显得是太过于从容不迫了,但是可以加速这一过程。需要进入系统注册表的“HKEY_CURRENT_USER/ControlPanel/Desktop/MenuShowDelay ”选项,将默认设定 400 改为看起来更为简单的数字,比如说 0 。
17. 无需工具即可批量改名
可以在 Windows视窗当中一次对许多档案同时进行重命名。需要做的是,在视窗当中高亮选中所有你需要重新命名的档案,然后用右键点击其中一个,并对它进行重新命名。其他被选中的档案也将会被命名为这个名字,只是在名字的后面会被用括弧加上不同的数字以示区分。同样地,在资料夹当中也可以通过“按照名称查看”来重新排列图示,或是“按照类型”排列。
18. 边听边看:定製Media Player
Windows Media Player 在播放 CD 音乐的同时,可以显示出该音乐所属的相关专辑的图片 ——假如从自己的CD中向电脑里面拷贝音乐的时候,它在网际网路上找到相关图片的的话。假如它没有找到,或是已经有了许多现成的WMP音乐档案,可以将自己现有的专辑封面图片放置在与这些音乐相同的资料夹当中。只需要将这个图片命名为“资料夹名称.jpg”的格式,Windows Media Player 就可以识别出该图片,并将其当中这些音乐的专辑封面,在播放时显示。
19. Windows键:不同组合作用不同
“Windows 键 + Break 键”会显示出系统属性对话框;“Windows 键 + D 键”会显示出电脑桌面;“Windows键 + Tab 键”可以在系统列图示上进行切换。(Windows 键指的是键盘上带Windows XP 标誌的那个按键)

作业系统类可执行指令

实地址模式和任何特权级下可执行指令

1.存储全局描述符表暂存器指令
格式:
SGDT 目标运算元
说明:目标运算元是48位(6位元组)的存储器运算元。该指令的功能是把全局描述符表暂存器GDTR的内容存储到目标运算元。GDTR中的16位界限存入目标运算元的低字,GDTR中的32位基地址存入目标运算元的高双字。该指令对标誌位没有影响。
2.存储中断描述符表暂存器指令
格式:
SIDT 目标运算元
说明:目标运算元是48位(6位元组)的存储器运算元。该指令的功能是把中断描述符表暂存器IDTR的内容存储到目标运算元。IDTR中的16位界限存入目标运算元的低字,IDTR中的32位基地址存入目标运算元的高双字。该指令对标誌位没有影响。

实地址模式和在特权级0下可执行的指令

下列指令涉及设定关键的暂存器,所以只能在实地址模式和保护模式的特权级0下执行。为了从初始时的实地址模式转入保护模式,必须做基本的準备工作,例如,设定全局描述符表暂存器GDTR等,因此这些指令也允许在实地址模式下执行。
在保护模式下,如果当前特权级CPI,不为0,执行这些指令将引起错误码为0的通用保护故障。在虚拟8086方式下,因为其CPL为3,所以执行这些指令也将会引起出错码为0的通用保护故障。
1.装载全局描述符表暂存器指令
格式:LGDT 源运算元
说明:源运算元是48位(6位元组)的记忆体运算元。该指令的功能是把源运算元装入到全局描述符表暂存器GDTR中。运算元的低字是以位元组为单位的段界限,高双字是段基地址。该指令对标誌位没有影响。
2.装载中断描述符表暂存器指令
格式:
LIDT 源运算元
说明:源运算元48位(6位元组)的记忆体运算元。该指令的功能是把存储器中的源运算元装载到中断描述符表暂存器IDTR中。运算元的低字是以位元组为单位的段界限,高双字是段基地址。该指令对标誌位没有影响。
3.控制暂存器数据传送指令
格式:
MOV 目标运算元,源运算元
说明:控制暂存器数据传送指令实现CPU的控制暂存器和32位通用暂存器之间的数据传送。所以,目标运算元和源运算元可以是80386使用的三个控制暂存器和任一32位通用暂存器,但不能同时是控制暂存器。该指令对标誌位没有影响。
4.清任务切换标誌指令
格式:
CLTS
说明:每当任务切换时,控制暂存器CR0的任务切换标誌TS被自动置l。CLTS指令的功能是将TS标誌清0。

只能在保护模式下执行的指令

下面的指令只能在保护模式下执行,如果在实地址模式下执行这些指令,将引起非法操作码故障(中断号为6)。
1.装载局部描述符表暂存器指令
格式:
LLDT 源运算元
说明:源运算元可以是16位通用暂存器或记忆体运算元。该指令的功能是把源运算元中的内容作为指示局部描述符表LDT的选择子装人到LDTR暂存器。该指令不影响标誌位。
源运算元给定的选择子应该指向GDT中的类型为LDT的描述符。若CPL不为0,那幺执行该指令将产生出错码为0的通用保护故障。若被装载的选择子不指向GDT中的描述符,或者描述符类型不是LDT描述符,那幺产生通用保护故障,错误码由该选择子构成。
2.存储局部描述符表暂存器指令
格式:
SLDT 目的运算元
说明:目的运算元可以是16位通用暂存器或记忆体运算元。该指令的功能是把局部描述符表暂存器LDTR的内容存储到目的运算元,即把指向当前任务LDT的选择子存储到目的运算元中。该指令不影响标誌位。
3.装载任务暂存器指令
格式:
LTR 源运算元
说明:源运算元可以是16位通用暂存器或记忆体运算元。该指令的功能是将源运算元作为指向TSS描述符的选择子装载到任务暂存器TR。源运算元表示的选择子不能为空,必须索引位于GDT中的描述符,并且描述符类型必须是可用TSS,该载入的TSS被处理器自动标为“忙”。该指令对标誌没有影响。若CPI。不为0,那幺执行该指令将产生错误码为0的通用保护故障。若被载入的选择子不指向GDT中的可用TSS描述符,那幺产生通用保护故障,错误码由该选择子构成。
4.存储任务暂存器指令
格式:
STR 目的运算元
说明:目的运算元可以是16位通用暂存器或记忆体运算元。该指令的功能是把TR所含的指向当前任务TSS描述符的选择子存储到目的运算元。该指令不影响标誌位。

Windows可执行指令

实地址模式和任何特权级下可执行指令

1.读取全局描述符表暂存器指令
格式:
SGDT QWORD PTR DST
功能:把全局描述符表暂存器GDTR的内容保存到记忆体单元DST。其中运算元DST是48位(6位元组)的记忆体运算元。GDTR中的16位限长存入DST的低字,GDTR中的32位基地址存入DST的高双字。
2.读取中断描述符表暂存器指令
格式:
SIDT QWORD PTR DST
功能:把中断描述符表暂存器GDTR的内容保存到记忆体单元DST。其中运算元DST是48位的记忆体运算元。IDTR中的16位限长存入DST的低字,IDTR中的32位基地址存入DST的高双字。
3.读取机器状态字指令
格式:
SMSW DST
功能:把机器状态字的内容保存到记忆体单元或暂存器中。其中运算元DST可以是16位的记忆体运算元或暂存器。这里的机器状态字是CR0的低16位,如果要取得完整的信息,应该使用CRO暂存器。
4.读取性能计数器指令
格式:
RDPMC
功能:读取由ECX指定的40位时间戳计数器,放入EDX:EAX中。EDX存放模式暂存器的高8位,EAX存放模式暂存器的低32位。
性能计数器中可以保存事件计数,例如,已经解码的指令的条数、收到中断的次数、Cache装入的次数。

实地址模式和在特权级0下可执行的指令

下面的指令涉及设定关键的暂存器,所以只能在实模式和保护模式的特权级0下执行。系统启动时进入实模式,为了转换到保护模式,必须在实模式下建立好保护模式所需的运行环境。例如,设定GDTR、IDTR等。
在保护模式下,如果当前特权级(CPL)不为0,执行这些指令将引起错误码为0的通用保护故障。在虚拟8086方式下,因为其CPL为3,所以执行这些指令也将会引起出错码为0的通用保护故障。这样,就限制了一般的应用程式修改GDTR、IDTR等暂存器和系统数据。
1.清任务切换标誌指令
格式:CLTS
功能:把CR0控制暂存器中的TS标誌清零。
TS标誌置为1,表示已发生过任务切换,在当前任务使用协处理器指令时,产生陷阱。由陷阱处理程式完成协处理器现场的保存和恢复,随后执行CLTS指令清除Ts标誌,使得当前任务后续使用的协处理器指令不再产生故障。
2.暂停指令
格式:HLT
功能:使处理器暂停执行。进入暂停状态的系统,只有在接收到一个外部中断或系统复位信号以后,才能离开暂停状态。进入暂停状态后CPU的功耗很低,因此,某些系统利用这个功能来达到省电的目的。
3.设定全局描述符表暂存器指令
格式:LGDT QWORD PTR SRC
功能:把存储器中的6位元组内容(16位限长,32位基地址)装入到全局描述符表暂存器GDTR中。其中运算元SRC是48位(6位元组)的记忆体运算元。
4.设定中断描述符表暂存器指令
格式:LIDT QWORD PTR SRC
功能:把存储器中的6位元组内容(16位限长,32位基地址)装入到中断描述符表暂存器IDTR中。其中运算元SRC是48位(6位元组)的记忆体运算元。
5.设定机器状态字指令
格式:LMSW DST
功能:把DST的内容装载到机器状态字。其中运算元DST可以是16位的记忆体运算元或暂存器。该指令可将机器状态字中的PE位置为1,以进入保护模式。
由于CPU的控制暂存器CR0的低16位就是机器状态字,所以,可以通过给CR0赋值的方法来设定机器状态字。
6.系统暂存器数据传送指令
格式:MOV DST,SRC
功能:实现控制暂存器/调试暂存器/暂存器和32位通用暂存器之间的数据传送。
SRC和DST中有一个是通用暂存器(EAX,EBX,ECX,EDX,ESI,EDI,EBP):另一个是控制暂存器(CRO,CRl,CR2)、调试暂存器(DR0,DRl,DR2,DR3,DR6,DR7)或者调试暂存器(TR6,TR7)。

仅在保护模式下可执行的指令

下面的指令只能在保护模式下执行。如果在实模式下执行这些指令,将引起非法操作码故障(向量号为6)。
1.设定局部描述符表暂存器指令
格式:LLDT SRC
功能:把SRC中的内容作为指示局部描述符表LDT的选择符装入到LDTR暂存器。其中,运算元SRC可以是16位通用暂存器或存储单元。
运算元SRC给定的选择符应该指示GDT中的类型为LDT(s=0,TYPE=2)的描述符。但SRC也可是一个空选择符,这样表示不使用局部描述符表LDT。
该指令只能在特权级0执行。若CPL不为0,那幺执行该指令将产生出错码为0的通用保护故障。若被装载的选择符不指向GDT中的一个LDT描述符,那幺产生通用保护故障,错误码由该选择符构成。
2.读取局部描述符表暂存器指令
格式:SLDT DST
功能:把局部描述符表暂存器LDTR的内容存储到存储单元DST中,即把指向当前任务LDT的选择符存储到DST中。其中,运算元DST可以是16位通用暂存器或存储单元。
3.设定任务暂存器指令
格式:LTR SRC
功能:将SRC的内容作为选择符装载到任务暂存器TR。其中,运算元SRC可以是16位通用暂存器或存储单元。
任务暂存器TR指示当前任务状态段TSS。随着任务的切换,TR的内容也随之改变;如果任务嵌套,那幺TR的原值作为连结字保存到新任务的TSS中。但有时候需要直接装载或者保存TR,这就需要使用LTR指令和STR指令。例如,系统在从实模式切换到保护模式后,要为当前任务建立任务状态段TSS,并使TR指向这个任务状态段TSS。
在执行这条指令时,必须首先建立一个TSS,在GDT中设定一个TSS描述符。SRC表示的选择符不能为空,指向GDT中的TSS描述符,并且描述符类型必须是可用TSS(B=O)。执行指令后,CPU将TSS设定为“忙”(B=1)。
该指令只能在特权级0下执行。若CPL不为0,那幺执行该指令将产生错误码为0的通用保护故障。若被载入的选择符不指示GDT中的可用TSS描述符,那幺产生通用保护故障,错误码由该选择符构成。
4.读取任务暂存器指令
格式:STR DST
功能:把TR中的选择符存储到DST。其中,运算元DST可以是16位通用暂存器或存储单元。
TR中的值总是当前任务的TSS状态段的选择符。
5.调整请求特权级指令
格式:ARPL OPRDl,OPRD2
功能:根据OPRD2选择符来调整OPRDl选择符的请求特权级,即RPL。
其中,运算元OPRDl可以是16位通用暂存器或存储单元,运算元OPRD2是16位通用暂存器。该指令把运算元OPRDl和OPRD2视为两个选择符,比较它们的请求特权级。选择符OPRDl和OPRD2的RPL在它们的最低2位中。如果OPRDl的RPL小于OPRD2的RPL,那幺ZF被置1,并把OPRD2的RPL值赋予OPRDl的RPL(使两个运算元的最低2位相等);否则,ZF被清零。
这条指令通常被用在高特权级的子程式中,主程式在低特权级。主程式传送过来一个虚拟地址(段选择符Seg:偏移量Ofs)作为参数。这里,设主程式的特权级为3,子程式的特权级为0。一般情况下,主程式应该将Seg的RPL设定为3,因为特权级3的程式只能访问DPL=3的数据段。但是,如果主程式将Seg的RPL设定为0,主程式就可能通过子程式来访问DPL--0的数据段。这时,在子程式中,就可以执行“ARPL Seg,csIIIai。”指令,CS。ai。是主程式的CS值,可以从0级堆叠中取得。Seg的RPL=0,CS。aill的RPL=3,因此执行这条指令后,Seg的RPL被调整为3,置ZF=l。如果Seg的RPL和CSfIIai。的RPL相同,表示主程式是一7卜“诚实”的程式,没有企图访问DPL=0的数据段,结果ZF=0。
6.读取存取许可权指令
格式:LAR OPRDl.OPRD2
功能:将OPRD2选择符指向的描述符内的属性栏位装入OPRDl。其中,运算元OPRDI可以是16位或32位通用暂存器,运算元OPRD2是16位或32位通用暂存器或存储单元。运算元OPRDl和OPRD2的大小必须一致。
该指令把运算元OPRD2视为选择符(当OPRD2为32位时,仅使用其低16位)。如果OPRD2所指示的描述符满足下面3个条件,那幺零标誌ZF被置1,并把描述符内的属性栏位装入OPRDl;否则,zF清零,OPRDl保持不变。
(1)在描述符表的範围内;
(2)描述符是代码/数据段描述符、LDT描述符、TSS描述符、任务门描述符、调用门述符之一;
(3)CPL和OPRD2的RPL都不大于DPL(即DPL/>MAX(CPL.RPL))。
在满足条件的情况下,装入到OPRDl的属性栏位是描述符的高4位元组和00F0FF00H相“与”的结果。注意,如果使用16位运算元,那幺只有高4位元组中的低16位和0FF00H相“与”后保存到OPRDl,即保存到OPRDl的属性栏位不包括G位、D位和AVL位等。
7.读取段界限指令
格式:LSL OPRDl,OPRD2
功能:将OPRD2选择符指向的描述符内的限长装入OPRDl。其中,运算元OPRDl可以是16位或32位通用暂存器,运算元OPRD2是16位或32位通用暂存器或存储单元。运算元OPRDl和OPRD2的尺寸必须一致。
该指令把运算元OPRD2视为选择符(当为32位时,仅使用低16位)。如果OPRD2所指示的描述符满足下面3个条件,那幺零标誌ZF被置1,并把描述符内的限长栏位装入OPRDl:否则,ZF清零,OPRDl保持不变。
(1)在描述符表的範围内;
(2)描述符是代码/数据段描述符、LDT描述符、TSS描述符之一;
(3)CPL和OPRD2的RPL都不大于DPL(DPL≥MAX(CPL,融)L)。
在满足条件的情况下,存入到OPRDl的限长栏位以位元组为单位。如果描述符中的限长栏位以4KB为单位(G=1),那幺装入到OPRDl时限长栏位被左移12位,空出的低12位全部置为1。如果OPRDl使用16位运算元,那幺只有段界限的低16位被存入到OPRDl。
8.读检验指令
格式:VERR OPRD
功能:判断OPRD选择符的段是否可读。其中,运算元OPRD可以是16位通用暂存器或存储单元,也可以是32位通用暂存器或存储单元。
把OPRD的内容作为一个选择符(运算元OPRD为32位时仅使用低16位),判断在当前特权级上该选择符所指示的段是否可读。如果该选择符指示一个合法的存储段描述符,并且在当前特权级上可以对所描述的段进行读操作,那幺ZF被置为1,否则ZF被清零。
利用读检验指令VERR和写检验指令VERW可分别检查在当前特权级下能否读或写指定的段,从而避免引起不必要的异常。
9.写检验指令
格式:VERW OPRD
功能:判断OPRD选择符的段是否可写。其中,运算元OPRD可以是16位通用暂存器或存储单元,也呵以是32位通用暂存器或存储单元。
把OPRD的内容作为一个选择符(当32位时仅使用低16位),判断在当前特权级上该选择符所指示的段是否可写。如果该选择符指示合法的一个存储段描述符,并且在当前特权级上可以对所描述的段进行写操作,那幺ZF被置为1,否则ZF被清零。
10.不写回方式清除Cache项指令
格式:INVD
功能:清除CPU内的指令Cache和数据Cache,并且向外部Cache电路传送一个特殊的汇流排信号,迫使它也清除Cache。CPU内的Cache不写回到记忆体中。
这个指令是危险的。因为CPU内部的Cache数据如果还没有被写回到记忆体,执行这个指令会使CPU内部的Cache数据被丢弃,而没有写入记忆体中。这个指令通常用在测试程式中,或者当程式发现Cache内容和主存不一致时,作为错误恢复过程的一部分。
一般应该使用WBINVD指令来清除Cache项。
INVD指令只能在保护模式的特权级0下执行。
11.写回方式清除Cache项指令
格式:WBINVD
功能:清除CPU内的指令Cache和数据Cache,并且向外部Cache电路传送一个特殊的汇流排信号,迫使它也清除Cache。CPU内的Cache写回到记忆体中。WB代表writeback。
执行这个指令会清空Cache项,Cache中的内容写回到记忆体中。
WBINVD指令只能在保护模式的特权级0下执行。
12.清除TLB表项指令
格式:INVLPG OPRD
功能:CPU的TLB保存了最近使用过的32个页表项。INVLPG指令首先找到记忆体运算元OPRD所在的物理记忆体页面,再将该页面的TLB表项Cache清除掉。
INVLPG指令只能在保护模式的特权级0下执行。
13.退出系统管理模式指令
格式:RSM
功能:使CPU退出系统管理模式。
CPU收到一个SMM中断时,进入系统管理模式SMM(system maIlagement mode),并将CPU暂存器等信息保存起来。执行RSM指令,使CPU退出系统管理模式,并恢复CPU暂存器等内容。在系统管理模式中,CPU可以运行电源管理、系统硬体管理或其他一些特殊程式。
1 4.读取模式暂存器指令
格式:RDMSR
功能:读取由ECX指定的64位模式暂存器(model specific register),放入EDX:EAX中。EDX存放模式暂存器的高32位,EAX存放模式暂存器的低32位。
执行CPUID指令,EDX的第5位为1时,支持模式暂存器。
模式暂存器用于CPU的测试、执行跟蹤、性能监测和错误检查等。
1 5.设定模式暂存器指令
格式:WRMSR
功能:将EDX:EAX写入ECX指定的模式暂存器。EDX存放模式暂存器的高32位,EAX存放模式暂存器的低32位。
1 6.读取性能计数器指令
格式:RDTSC
功能:读取64位时间戳计数器,放入EDX:EAX中。EDX存放时间戳计数器的高32位,EAX存放时间戳计数器的低32位。
CPU在每一个时钟周期都将时问戳计数器加1,在复位时将此计数器的值清零。
17.锁汇流排指令前缀
格式:LOCK
功能:使后续的一条指令能独占汇流排。
严格地讲,LOCK并不是一个完整的指令,而只是一个指令前缀。它放置在其他指令的前面。在执行LOCK后面的一条指令时,CPU将其LOCK彝引脚置为有效电平,保证系统内的其他CPU不会使用汇流排。这条指令执行完毕后,CPU将LoCK#引脚置为无效电平。
LOCK前缀通常和BTS一起使用,保证BTS指令对记忆体运算元的读一修改一写3步操作不被其他CPU所打断。
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net