X86 LDS指令解析
来源:互联网 发布:python难找工作 编辑:程序博客网 时间:2024/06/06 17:12
DM指令功能描述(LDS)
总体描述:
用32位或48位的数据加载16位DS段选择符和16或32位的通用寄存器值,其中通用寄存器在目的操作数中。
LDS (16or32)通用寄存器, (32or48)内存变量的地址
注意:LDS指令不支持64位模式
伪代码:
64位模式:
#UD
32位模式:
if(selector is not NULL){ if((selector指向gdt或者ldt超出了gdt或ldt的limit) or (描述符的意义说明不是数据段也不是可读的代码段) or (在(RPL>DPL 或 CPL>DPL)的前提下,段不是数据段也不是非一致性代码段)) { GP } else { DS选择符赋值 DS段描述符(对软件不可见)赋值 } } else(selector is NULL) { DS=0 DS段描述符(对软件不可见)=0 }
16位实模式:
DS=(SRC+2) DEST=(SRC)
测试代码
struct lseg_st{ long a; int16_t b; };void test(){ struct lseg_st les; les.a = 0xffffffff; les.b = 0x08; __asm__ volatile ( "ldsl %0, %%eax\t\n" ::"m"(les) );}
阅读全文
1 0
- X86 LDS指令解析
- x86 LES指令解析
- 4. x86常见指令解析
- x86虚拟机设计之CISC指令解析
- X86指令
- X86指令
- Eclipse下.lds文件解析
- 地址传送指令LEA,LDS,LES;
- LDS,LES,LFS,LGS,LSS指令
- 8086地址传送指令LDS,LES
- 8086地址传送指令LEA,LDS,LES
- x86汇编指令详解
- x86汇编指令(1)
- x86汇编指令(2)
- x86 体系指令
- 80x86 汇编指令
- x86 转移指令机器码
- X86中的RDTSC指令
- 关于 Metasploitable2 下的 unreal_ircd_3281_backdoor漏洞利用
- WinCE 中的 ListView怎么显示网格
- C语言也有大学问——大数相加问题
- Java 实现根据权重设置抽奖概率
- struts2,hibernate4,spring3配置时问题汇总及解决办法
- X86 LDS指令解析
- LeetCode——add two numbers
- 关于java中main()方法是不是第一个被执行的模块
- JVM如何收集垃圾?
- Codeforces 808E Selling Souvenirs 题解
- 监督学习(supervised learning)和无监督学习(unsupervised learning)
- opencv for ios 配置后#import <opencv2/opencv.hpp>报错:file not found问题(opencv3.2.0)
- C++实现R语言向量化运算(向量类:c 矩阵类:matrix)2015.9.11
- PE文件格式学习笔记