zoukankan      html  css  js  c++  java
  • 实模式和保护模式下的段寄存器

    ES CS DS SS FS GS LDTR TR

    32位下段寄存器的组成图:(不考虑64位)

    分为4个部分

    • Selector   16位/可见
    • Attribute  16位/不可见
    • Limit   32位/不可见
    • Base  32位/不可见

    实模式寻址

    8086实模式寻址时:

    mov cx,0x2000
    mov ds,cx
    mov [0xc0],al
    ;以上,将段寄存器ds的值设置为0x2000,
    ;然后向该段内偏移地址为0x00c0的地址写入al的值,
    ;写入时,将ds的值左移4位,再加上0x00c0,即:0x200c0

    32位实模式寻址不一样:

    mov ax,cs
    mov ds,ax
    ;第一句 ax=cs.Selector
    ;第二句 先 ds.Selector=ax
    ;然后 ds.Base=ds.Selector<<4,Base只用到了低20位。

    32位环境下,当用汇编读取某一地址时:

    mov dword ptr ds:[0x123456],eax
    ;真正读写的地址是ds.base+0x123456

     32位保护模式下寻址

    6个段寄存器ES CS DS SS FS GS叫做段选择器,和实模式不同,保护模式的内存访问有自己的方式,

    在保护模式下,尽管访问内存时也需要指定一个段,但传送到段选择器的内容不是逻辑段地址,而是段选择子。

    段选择子由三部分组成:

    • 描述符索引——用来在描述符表中选择一个段描述符。
    • 描述符表指示器——TI=0时,在GDT表中;TI=1时,在LDT表中。
    • 请求特权级别——4个级别,0,1,2,3。

    例:

    mov cx,00000000000_10_000B         ;加载数据段选择子(0x10)
    mov ds,cx
    ;索引号  00000000000_10   2
    ;TI  0  GDT
    ;权限 00 最高权限
  • 相关阅读:
    python常用包官网及包的安装方法
    二进制安装mysql-5.7.26
    ufw防火墙规则不生效
    Zabbix 3.0 配置企业微信报警(配置zabbix-web)
    Zabbix 3.0 配置企业微信报警(注册---测试)
    阿里云盾AliYunDun服务IO超高
    zabbix详解
    ntp时间同步
    zabbix解决中文乱码
    ssh登录服务器提示错误no hostkey alg
  • 原文地址:https://www.cnblogs.com/a-s-m/p/12759195.html
Copyright © 2011-2022 走看看