• LDS,LES,LFS,LGS,LSS指令


    LDS,LES,LFS,LGS,LSS其指令格式都是

            LDS reg16,mem32

    其意义是同时给一个段寄存器和一个16位通用寄存器同时赋值

    具体如下:reg16=mem32的低字,DS=mem32的高字

    例如、

    地址 100h    101h    102h   103h

    内容   00h      41h        02h     03h

    如果指令 LDS AX,[100h]

    则结果为 AX=4100h    DS=0302h

    CS(Code Segment):代码段寄存器;
    DS(Data Segment):数据段寄存器;
    SS(Stack Segment):堆栈段寄存器;
    ES(Extra Segment):附加段寄存器。

    FS (Extra Segment),其值为附加数据段的段值;
    GS (Extra Segment),其值为附加数据段的段值。

    FS F段或F选择器(推测F可能是Free?)。可以用这个寄存器作为默认段寄存器或选择器的一个替代品。它可以被装入任何数值,方法和DS类似。 
    GS G段或G选择器(G的意义和F一样,没有在Intel的文档中解释)。它和FS几乎完全一样。 

    在16位CPU系统中,它只有4个段寄存器,所以,程序在任何时刻至多有4个正在使用的段可直接访问;在32位微机系统中,它有6个段寄存器,所以,在此环境下开发的程序最多可同时访问6个段。32位CPU有两个不同的工作方式:实方式和保护方式。在每种方式下,段寄存器的作用是不同的。有关规定简单描述如下:
    实方式: 前4个段寄存器CS、DS、ES和SS与先前CPU中的所对应的段寄存器的含义完全一致,内存单元的逻辑地址仍为”段值:偏移量”的形式。为访问某内存段内的数据,必须使用该段寄存器和存储单元的偏移量。
    保护方式: 在此方式下,情况要复杂得多,装入段寄存器的不再是段值,而是称为”选择子”(Selector)的某个值。

    FS寄存器:

    FS寄存器指向当前活动线程的TEB结构(线程结构)
    偏移  说明
    000  指向SEH链指针
    004  线程堆栈顶部
    008  线程堆栈底部
    00C  SubSystemTib
    010  FiberData
    014  ArbitraryUserPointer
    018  FS段寄存器在内存中的镜像地址
    020  进程PID
    024  线程ID
    02C  指向线程局部存储指针
    030  PEB结构地址(进程结构)
    034  上个错误号


    得到KERNEL32.DLL基址的方法
    assume fs:nothing             ;打开FS寄存器
    mov eax,fs:[30h]            ;得到PEB结构地址
    mov eax,[eax + 0ch]        ;得到PEB_LDR_DATA结构地址
    mov esi,[eax + 1ch]        ;InInitializationOrderModuleList
    lodsd                      ;得到KERNEL32.DLL所在LDR_MODULE结构的InInitializationOrderModuleList地址
    mov edx,[eax + 8h]         ;得到BaseAddress,既Kernel32.dll基址
     

    转自:

    http://blog.csdn.net/tianwailaibin/article/details/7364060

    http://blog.csdn.net/xbin8/article/details/2158762

    详细的寄存器介绍及作用,参看下面文章:

    http://blog.csdn.net/ly131420/article/details/8741225

  • 相关阅读:
    hibernate 高并发下遇到的大坑
    Spring Cloud微服务架构企业中的应用
    spring cloud学习-hystrix
    点评CAT接入手册
    centOS6.5 修改catalina.sh使用crontab自动切割日志tomcat8
    mariaDB安装报错
    linux安装rap需要的软件
    mariaDB的innodb恢复报错解决
    NFinal学习笔记 02—NFinalBuild
    NFinal 视图—用户控件
  • 原文地址:https://www.cnblogs.com/ydxt/p/5634825.html
Copyright © 2020-2023  润新知