X86 LGS/LFS指令详解
来源:互联网 发布:人工智能的好处和坏处 编辑:程序博客网 时间:2024/05/18 18:02
SDM指令功能描述(LGS/LFS)
总体描述:
用32位或48位或64的数据加载16位GS/FS段选择符和16或32位的通用寄存器值,其中通用寄存器在目的操作数中。
LGS/LFS (16or32or64)通用寄存器, (32or48or64)内存变量的地址
伪代码:64位模式:if(selector is no NULL){ if((selector指定的偏移大于指定的描述符表的limit) or (访问权限说明不是数据段也不是可读代码段) or (是数据段或非一致性代码段的情况下 && (RPL>DPL or CPL>DPL))) { GP } else if(描述符中present位为0) { GP } selector = SRC中的值 descriptor = 根据selector访问相应表得到的描述符}else if(selector is NULL){ selector = NULL descriptor = NULL}DEST = SRC32位模式:if(selector is not NULL){ if((selector指向gdt或者ldt超出了gdt或ldt的limit) or (描述符的意义说明不是数据段也不是可读的代码段) or (在(RPL>DPL 或 CPL>DPL)的前提下,段不是数据段也不是非一致性代码段)) { GP } else { 选择符赋值 段描述符(对软件不可见)赋值 }}else(selector is NULL){ 选择符=0 段描述符(对软件不可见)=0}DEST=*(SRC)16位实模式DS=*(SRC+2)DEST=*(SRC)
标志位影响:
无
相关异常:
GP:当显示或隐示的使用CS, DS, ES, FS, GS加上一个偏移作为内存访问地址时超出limit
SS:使用SS和一个指针访问内存超出ss段limit
UD:当使用了LOCK prefix的时候
阅读全文
0 0
- X86 LGS/LFS指令详解
- LDS,LES,LFS,LGS,LSS指令
- LEA,LDS,LES,LFS,LGS,LSS指令功能
- LEA,LDS,LES,LFS,LGS,LSS指令功能
- 汇编指令: LAHF、LAR、LDS、LES、LSS、LFS、LGS、LEA、LEA、LEAVE
- x86汇编指令详解
- x86汇编指令详解 .
- x86汇编指令详解
- x86汇编指令详解
- x86汇编指令详解
- x86汇编指令详解
- x86汇编指令详解
- x86汇编指令详解
- x86汇编指令详解 .
- x86汇编指令详解
- x86汇编指令详解
- x86汇编指令详解
- x86汇编指令详解
- PHP 文件锁
- $.ajax跨域问题的简单解决。
- GN语法和操作
- c#酒店管理系统
- Java 试题五
- X86 LGS/LFS指令详解
- HTML8 工作总结
- Android Samples---AppShortcuts(快捷启动)
- jquery中$each()方法的使用指南
- PHP之session_start()详解
- C++学习 逆序输出
- iosAnimationDemo
- Hive简介与安装及语法
- SQL Server DATEDIFF() 函数