• 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目标串寻址

  • 相关阅读:
    为媒体资产构建一个云原生的文件系统
    【【萌新的RiscV学习之在写代码之前对于关键路径的分析-11】】
    一:OpenCV图片读取与写入文件帮助文档
    【vue】ant-design弹出框无法关闭和runtimecore提示isFucntion is not function的问题修复
    Mysql同环比计算详解
    新手如何快速上手HTTP爬虫IP?
    天图资本通过香港上市聆讯:上半年利润下滑24%,王永华为董事长
    Flume系列:Flume通道拓扑结构
    ASEMI二极管1N4148(T4)的用途和使用建议
    实现精细化生产, MES、APS、ERP必不可少
  • 原文地址:https://blog.csdn.net/Charlotte_He/article/details/140388348