您的位置:逆风者 汇编技术 正文
原作者:www.upwinder.com 添加时间:2007-09-01 原文发表:2007-08-31 人气:32 来源:未知

本文章共2595字,分2页,当前第1页,快速翻页:
 
下面介绍的指令只能在保护模式下执行,如果在实模式下执行这些指令,将引起非法操作码故障(向量号为6)。

1.装载和存储局部描述符表寄存器指令

(1)装载局部描述符表寄存器指令

装载局部描述符表寄存器指令的格式如下:
    LLDT    SRC

其中,操作数SRC可以是16位通用寄存器或存储单元。该指令的功能是把SRC中的内容作为指示局部描述符表LDT的选择子装入到LDTR寄存器。该指令不影响标志。
操作数SRC给定的选择子应该指示GDT中的类型为LDT的描述符。但LRC也可是一个空选择子,如果这样的话,表示暂时不使用局部描述符表LDT。
若CPL不为0,那么执行该指令将产生出错码为0的通用保护故障。若被装载的选择子不指示GDT中的描述符,或者描述符类型不是LDT描述符,那么产生通用保护故障,错误码由该选择子构成。
象段寄存器那样,LDTR也有两部分。在把指示LDT的选择子装入到LDTR可见部分时,处理器自动把选择子所索引的LDT描述符中的段基地址等信息保存到不可见的高速缓冲寄存器中。

(2)存储局部描述符表寄存器指令

存储局部描述符表寄存器指令的格式如下:
    SLDT    DST

其中,操作数DST可以是16位通用寄存器或存储单元。该指令的功能是把局部描述符表寄存器 LDTR的内容存储到存储单元DST中,也即把指向当前任务LDT的选择子存储到DST中。该指令不影响标志。

2.装载和存储任务寄存器指令

任务寄存器TR指示当前任务状态段TSS。随着任务的切换,TR的内容也随之改变;如果任务嵌套,那么TR的原值作为链接字保存到新任务的TSS中。但有时候需要直接地装载或者保存TR,这就需要使用装载TR指令和存储TR指令。

(1)装载任务寄存器指令

装载任务寄存器指令的格式如下:
    LTR     SRC

其中,操作数SRC可以是16位通用寄存器或存储单元。该指令的功能是将SRC作为指示TSS描述符的选择子装载到任务寄存器TR。由前文可知,TR分为两部分,即程序员可见部分和不可见的高速缓冲寄存器部分。在把TSS的选择子装入到TR可见部分时,处理器自动把选择子所索引的描述符中的段基地址等信息保存到不可见的高速缓冲寄存器中。所以,SRC表示的选择子不能为空,必须索引位于GDT中的描述符,并且描述符类型必须是可用TSS,该加载的TSS被处理器自动标为 “忙”。该指令对标志没有影响。
若CPL不为0,那么执行该指令将产生错误码为0的通用保护故障。若被加载的选择子不指示GDT中的可用TSS描述符,那么产生通用保护故障,错误码由该选择子构成。

(2)存储任务寄存器指令

存储任务寄存器指令的格式如下:
    STR     DST

其中,操作数DST可以是16位通用寄存器或存储单元。该指令的功能是把TR所含的指示当前任务TSS描述符的选择子存储到DST。该指令不影响标志。

3.调整申请特权级指令

调整申请特权级指令的格式如下:
    ARPL    OPRD1,OPRD2

其中,操作数OPRD1可以是16位通用寄存器或存储单元,操作数OPRD2是16位通用寄存器。该指令把操作数OPRD1和OPRD2视为两个选择子,用OPRD2的申请特权级(RPL)去检查OPRD1的RPL。选择子OPRD1和OPRD2的RPL分别由它们的最低2个位规定。如果OPRD1的RPL小于OPRD2的RPL,那么零标志ZF被置1,并把OPRD2的RPL值赋予OPRD1的RPL(使两个操作数的最低2位相等);否则,零标志ZF被清0。OPRD1和OPRD2都可为空选择子。该指令只影响ZF标志。

4.装载存取权指令

装载存取权指令的格式如下:
    LAR     OPRD1,OPRD2

其中,操作数OPRD1可以是16位或32位通用寄存器,操作数OPRD2是16位通用寄存器或存储单元,也可以是32位通用寄存器或存储单元。操作数OPRD1和OPRD2的尺寸必须一致。该指令把操作数OPRD2视为选择子(当为32位时,仅使用低16位),如果OPRD2所指示的描述符满足如下条件,那么零标志ZF被置1,并把描述符内的属性字段装入OPRD1;否则,ZF清0,OPRD1保持不变。
 
本文章更多内容1 - 2 - 下一页>>
相关文章

任务状态段和控制门
程式语言效率分析(1)
学习更多关于“绘制”文本串的知识
给程序加个图标
MASM的反反汇编技术
进一步学习对话框
驻留exe文件
如何建立汇编工作环境
汇编与C语言配合
动态链接库
系统托盘中的快捷图标
DEBUG命令详解
仿FDISK及PQMAGIC列出分区逻辑盘符的prw.as
保护方式简介
实模式和任何特权级下可执行的指令
汇编语言的高级语言特性
关于div/idiv/mul/imul指令的用法
建立自己的动态链接库
超类化
驱动程序的动态加载

相关评论


本文章所属分类:首页 汇编技术

  热门关键字:
进制数据输出的通用程序 2007-09-12
汇编源码--showmem 2007-08-31
汇编源码--CLEAN 2007-08-31
汇编源码--hdr 2007-08-31
汇编源码--basload 2007-08-31
汇编源码--CHAR 2007-08-31
汇编源码--fxn 2007-08-31
汇编源码--alarm 2007-08-31
汇编源码--getsect 2007-08-31
汇编源码--DEV 2007-08-31
汇编源码--getspace 2007-08-31
汇编源码--frespace 2007-08-31
CIH文件型病毒检测消除程序 2007-08-31
Mixer Volume Ctrler V1.0 2007-08-31
汇编源码--COMINT 2007-08-31
自己用汇编语言写的一个病毒(源码... 2007-08-31
汇编源码--col 2007-08-31
汇编源码--BURNOUT 2007-08-31