zoukankan      html  css  js  c++  java
  • Intel 80x86 寻址模式

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

    一.预赛:

        (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.基址+变址寻址


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

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

  • 相关阅读:
    2019 SDN阅读作业
    第01组 Alpha冲刺(4/6)
    第01组 Alpha冲刺(3/6)
    第01组 Alpha冲刺(2/6)
    2019 SDN上机第3次作业
    第01组 Alpha冲刺(1/6)
    2019 SDN上机第2次作业
    第01组 团队Git现场编程实战
    1755: [Usaco2005 qua]Bank Interest
    3386/1752: [Usaco2004 Nov]Til the Cows Come Home 带奶牛回家
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4825890.html
Copyright © 2011-2022 走看看