随着进一步的研究,我们会逐渐接触到你的电脑配置模式的内在联系,和设计原则。在这些,解决计算机是一个非常重要的概念,我们需要很好地理解了什么。

一.预赛:

(1)作数

在接触寻址方式之前,我们还要先了解一下操作数的概念,依据操作数存放方式的不同,我们能够将操作数分成3类,

1.马上操作数:操作数包括在本条指令中。

2.寄存器操作数:操作数存放在CPU的某个寄存器中。

3.存储器(内存)操作数:操作数存放在存储器中;

(2)逻辑地址

逻辑地址 = 段地址(存储单元所在逻辑段地址)左移4位 + 偏移地址(该单元的偏移地址)

我们能够发现。这是通过左移的方式将16位扩展成了20位,当初好像由于为了方便处理兼容问题。才採用这样的扩展方式的。

段 是内存设计模型的结果,在80x86内存模型中,各处理器的地址空间不一致(由于要保持兼容性),但它们都被切割成以64KB为单位的区域,每一个这种区域称为段。

note:不同的段地址和偏移地址可能组成同样的内存地址,如:(段地址(左移4为后):A0000,偏移地址FFFF。终于地址AFFFF;  段地址(左移4位后):AFFF0,偏移          地址000F,终于地址AFFFF)。

二.寻址方式的分类:

操作数类型的同样。也会导致寻址方式类型的差异。寻址方式能够分为三大类:

(1)马上寻址:操作数是马上操作数;MOV AL。1234H

(2)寄存器寻址:操作数是寄存器操作数;MOV DS,AX

(3)存储器操作数的寻址又能够分为5种:

1.直接寻址:偏移地址直接存放在存储器中;MOV BX,DS:[1234H]

2.寄存器间接寻址:将操作数在存储器中的地址放到寄存器中,先从寄存器中取出操作数的地址,再从存储器相应的内存单元中取出操作数;MOV AL,[BX]

一般的寄存器默认的是DS(数据段)。BP寄存器默认的是SS(堆栈段);

3.基址寻址:存储单元的偏移地址为规定的基址寄存器(BX, BP)的内容与一个常量得喝,MOV DL,DS:[BX+2]

4.变址寻址:MOV DL,[DI+2]

5.基址+变址寻址

说的比較浅。主体的内容大致就这些了。有些地方仅仅这是在传球,无特殊说明,有兴趣的同学可以自己做。上网查资料,看。

版权声明:本文博主原创文章。博客,未经同意不得转载。

Intel 80x86 寻址模式的更多相关文章

  1. 《linux 内核全然剖析》 chapter 4 80x86 保护模式极其编程

    80x86 保护模式极其编程       首先我不得不说.看这章真的非常纠结...看了半天.不知道这个东西能干嘛.我感觉唯一有点用的就是对于内存映射的理解...我假设不在底层给80x86写汇编的话.我 ...

  2. X86/X64处理器体系结构及寻址模式

    由8086/8088.x86.Pentium发展到core系列短短40多年间,处理器的时钟频率差点儿已接近极限.尽管如此,自从86年Intel推出386至今除了添加一些有关流媒体的指令如mmx/sse ...

  3. 解决 cocos2dx iOS/mac 设置纹理寻址模式后纹理变黑的问题

    sprite:getTexture():setTexParameters(gl.LINEAR,gl.LINEAR,gl.REPEAT,gl.REPEAT) 在安卓设备上,设置了纹理自定义寻址模式,纹理 ...

  4. 80x86保护模式下IDT和中断调用过程分析

    80x86保护模式下IDT和中断调用过程分析 1.中断描述符表(IDT),将每个异常或中断向量分别与它们的处理过程联系起来.与GDT和LDT类似,IDT也是由8字节长度的描述符组成.IDT空描述符的存 ...

  5. 80X86保护模式及其编程(一)

    80x86系统寄存器和系统指令 1.标志寄存器(EFLAGS) 标志寄存器EFLAGS的标志位含义如下图: TF 位8是跟踪标志(Trace flag),当设置该位时可为调试操作启动单步执行方式.复位 ...

  6. Intel 80x86 Linux Kernel Interrupt(中断)、Interrupt Priority、Interrupt nesting、Prohibit Things Whthin CPU In The Interrupt Off State

    目录 . 引言 . Linux 中断的概念 . 中断处理流程 . Linux 中断相关的源代码分析 . Linux 硬件中断 . Linux 软中断 . 中断优先级 . CPU在关中断状态下编程要注意 ...

  7. 操作系统学习(一)、80x86保护模式内存管理

    整理的不好,凑合着看吧 目录 1.内存及寻址 2.地址变换 3.分段机制 4.分页机制 5.保护 6.去到底部 一.内存及寻址 返回目录 二.地址变换 80X86 从 逻辑地址 到 物理地址 的转换: ...

  8. Linux内核源码分析 day01——内存寻址

    前言 Linux内核源码分析 Antz系统编写已经开始了内核部分了,在编写时同时也参考学习一点Linux内核知识. 自制Antz操作系统 一个自制的操作系统,Antz .半图形化半命令式系统,同时嵌入 ...

  9. 80X86寄存器详解<转载>

    引子 打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识, 自然,还是得从最基础的开始,那就从汇编语言开刀吧, 从汇编语言开刀的话,我们必须还先要了解一些其他东西, 像  CPU ...

随机推荐

  1. 冒泡排序java

    先对冒泡排序做一个简单的解释,然后是代码的实现.解释出资<java的数据结构和算法>,大家可以看看. 排序类: package com.dxx.order; public class Bu ...

  2. 关与 Visual.Assist.X.V10.7.1912的Crack破解补丁(vs 番茄插件的key破解方法)

    在win7系统下, 我用的是vs2012版本号. Visual Assist沿用了快10年的界面,最终有了更新,变得更加适合Win8 以及 VS2012的主题风格了 ,这也是以后软件的发展趋势,仅仅是 ...

  3. Android 屏幕实现水龙头事件

    在android下,事件的发生是在监听器下进行,android系统能够响应按键事件和触摸屏事件.事件说明例如以下: onClick(View v)一个普通的点击button事件 boolean onK ...

  4. or1200中IMMU分析(续)

    下面内容摘自<步步惊芯--软核处理器内部设计分析>一书 2 IMMU中的特殊寄存器 OR1200处理器中的IMMU包括第2组特殊寄存器,如表10.1所看到的. ITLBW0MRx是指令TL ...

  5. C++11:强类型枚举(enum)

    // C++11之前的enum类型是继承C的,不温不火: // C++11对enum动刀了,加强了类型检查,推出强类型enum类型,眼前一亮 // 使用过QT 的都知道,早就应该这么做了,用的非常爽! ...

  6. 【Java基金会】Java整理面试问题和评论(一)

    1. ArrayList,Vector, LinkedList 存储性能及特点 ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便添加和插入元素,它们都 ...

  7. [LeetCode82]Remove Duplicates from Sorted List II

    题目: Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct  ...

  8. hibernate的通配符比拼接sql到底好在哪?

    Hibernate对于刚接触的人来说,通配符只是提供了另一种组合sql的方式.接触的久了,熟悉之后,才能够真正理解通配符在Hibernate中起到的作用 主要作用有两点: 1,避免sql注入 hibe ...

  9. 于win7使用虚拟磁盘隐藏文件

    于win7使用虚拟磁盘隐藏文件,我只是win7在验证.其他型号未知. 一.创建虚拟磁盘 1.右键点击"计算机"-----"管理" ------"磁盘管 ...

  10. SNMP WINDOWS系统的命令行工具下载

    SNMP windows系统的命令行工具snmputil.exe下载链接:请点击