• 8086/8088CPU的储存器结构(二)


    一、储存单元

    1.存储单元的地址

    (1)定义:将存储单元编号,即为地址

    (2)表示:十六进制

    2.存储单元的内容

    定义:存储单元中存放的信息称为该存储单元的内容

    表示:存储地址加()

    若X单元中存放这Y,而Y又是一个地址,则可用(y)=((X))来表示Y单元的内容

    (字节单元名称)=具体内容

    注意区分字节单元和字单元

    字节单元8位,字单元16位(低地址的内容作低八位,高地址的内容作高八位),

    双字单元,根据字单元,往高地址类推,共32位

    二、内存分配

    1.存储器地址分段的原因和方法

    (1)原因:CPU有20根地址总线A19~A0,可以访问存储器的最大容量为2^20B=1024KB=1MB.

        但是,在CPU中所有可用来存放地址的寄存器都是16位的,用什么来提供20位的地址呢?

    此时储存地址分段就派上用场。把1MB的存储空间划分为若干个段,每个段由1到64KB(即65536B)个连续的字节单元组成。每个段是一个可独立寻址的逻辑单位。

    (2)分段的基本规则

    每个段最大可达64KB,因此,段内地址可用16位来表示。 但是计算机对段的起始地址有限制,段不能起始于任意地址,必须从任意一小段的首地址开始。

    计算机规定:从0地址开始,每16个字节为一小段

    (3)段地址

    表示一个段的开始

    (4)偏移地址

    在段内相当于段起始地址的偏移值。当偏移量为0,就是这个段的起始单元,当偏移量为0FFFFS时,就是这个段的最后一个字节单元。

    (5)物理地址和逻辑地址

    每一个存储单元都有两种形式的地址,即物理地址和逻辑地址。

    每一个存储单元的物理地址是唯一的,就是这个单元的地址编码。 

    在程序设计中,程序员使用的是逻辑地址,而不使用物理地址,这不仅有利于程序的开发,且对存储器的动态管理也是有利的。

    一个逻辑地址是由段地址和偏移地址两部分组成,而且都是无符号的16为二进制数

    2.物理地址的形成

    计算公式

    物理地址=段地址×10H+偏移地址  (段地址向左平移一位加上偏移地址)

    每个存储单元物理地址是唯一的,但是可由不同的段地址和不同的偏移地址组成 

    3.隐含段和偏移寄存器

    缺省16位段+偏移寻址组合

    偏移地址存在地主要用途
    CSIP指令寻址
    SSSP或者BP堆栈寻址
    DSBX, DI,SI或16位数数据寻址
    ES串指令DI目标串寻址

  • 相关阅读:
    大语言模型之十四-PEFT的LoRA
    代理池项目查询
    VARMA模型的原理与实现
    复杂网络建模(一)
    【Java】集合与顶级接口Collection
    OpenVINO--初步学习笔记
    29.5.3 恢复准备
    js防抖、节流以及他们的应用场景
    低能量电子束曝光技术
    怎样判定一个可执行文件是否是PIE 格式的文件
  • 原文地址:https://blog.csdn.net/Charlotte_He/article/details/140388348