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

本文章共2595字,分2页,当前第2页,快速翻页:
 
(1)在描述符表的范围内;
(2)是存储段描述符或系统段描述符或任务门描述符或调用门描述符;
(3)CPL和OPRD2的RPL都不大于DPL。
在满足条件的情况下,装入到OPRD1的由OPRD2所指示的描述符中的属性字段是指描述符的高4字节和00FXFF00H相与的结果,其中X表示第16位到第19位无定义。注意,如果指令使用16位操作数,那么只有高4字节中的低字被装入到OPRD1,即装入到OPRD1的属性字段不包括G位和AVL位等。该指令只影响ZF标志。
5.装载段界限指令
装载界限指令的格式如下:
    LSL     OPRD1,OPRD2

其中,操作数OPRD1可以是16位或32位通用寄存器,操作数OPRD2是16位通用寄存器或存储单元,也可以是32位通用寄存器或存储单元。操作数OPRD1和OPRD2的尺寸必须一致。该指令把操作数OPRD2视为选择子(当为32位时,仅使用低16位),如果OPRD2所指示的描述符满足如下条件,那么零标志ZF被置1,并把描述符内的界限字段装入OPRD1;否则,ZF清0,OPRD1保持不变。
(1)在描述符表的范围内;
(2)是存储段描述符或系统段描述符,而非门描述符;
(3)CPL和OPRD2的RPL都不大于DPL。
在满足条件的情况下,装入到OPRD1的由OPRD2所指示的描述符中的界限字段以字节位为单位。如果描述符中的界限字段以4K字节为单位(G=1),那么装入到OPRD1时被左移12位,空出的低位全部填成1。注意,如果指令使用16位操作数,那么只有段界限的低16位被装入到OPRD1。该指令只影响ZF标志。

6.读写检验指令

利用读检验指令和写检验指令可分别检查在当前特权级上指定的段能否读或写,从而避免引起不必要的异常。

(1)读检验指令

读检验指令的一般格式如下:
    VERR    OPRD

其中,操作数OPRD可以是16位通用寄存器或存储单元,也可以是32位通用寄存器或存储单元。该指令的功能是把OPRD的内容作为一个选择子(当32位时仅使用低16位),判断在当前特权级上该选择子所指示的段是否可读。如果该选择子指示合法的一个存储段描述符,并且在当前特权级上可读所描述的段,那么零标志ZF被置为1,否则ZF被清0。该指令只影响ZF标志。

(2)写检验指令

写读检验指令的一般格式如下:
    VERW    OPRD

其中,操作数OPRD可以是16位通用寄存器或存储单元,也可以是32位通用寄存器或存储单元。该指令的功能是把OPRD的内容作为一个选择子(当32位时仅使用低16位),判断在当前特权级上该选择子所指示的段是否可写。如果该选择子指示合法的一个存储段描述符,并且在当前特权级上可写所描述的段,那么零标志ZF被置为1,否则ZF被清0。该指令只影响ZF标志。

逆风编程技术

[1][2]下一页


 
本文章更多内容<<上一页 - 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