1.物理地址概念:

        所有内存单元构造的存储空间是一个一维性空间.每个内存单元在这个空间都有一个唯一的地址,这个唯一的地址称为物理地址.

CPU通过地址总线送入存储器的必须是一个内存单元的物理地址.

不同的CPU有不同形式的物理地址形成方式.

物理地址计算公式:  物理地址 = 段地址 x 16 + 偏移地址

2.CPU的结构:

 8080和8085CPU都是一个8位结构的CPU

              1.   运算器一次最多可处理8位数据

               2. 寄存器的最大宽度为8位

               3. 寄存器与运算器的最大通路为8位

8086CPU是一个16位结构的CPU

              1.   运算器一次最多可处理16位数据

               2. 寄存器的最大宽度为16位

               3. 寄存器与运算器的最大通路为16位

 

8086CPU:

         地址总线: 20

         寻址能力: 2^20   =  1M    2^16 = 64K

         地址合成:  2个16位地址(段地址与偏移地址),通过地址加法器合成一个20位物理地址

 

8080CPU地址合成流程如下:

汇编物理地址计算与段地址认识_汇编

下面地址值为十六制)

          段地址:  1230     偏移地址: 00C8

          物理地址 = (段地址)0x1230 * 16 + (偏移地址)0x00C8 =  0x12300 + 0x00C8  = 0x123C8

          物理地址是由地址加法器进行计算的.

汇编物理地址计算与段地址认识_段地址_02

 

汇编物理地址计算与段地址认识_寻址_03

          

 2.段地址概念:

        内存没有分段,分段来自于CPU,由于CPU使用段地址*16+偏移地址的方式来给出物理地址,所以得用内存段的方式来管理内存,N(N>1)个地址连接的内存单元视为一个地址段,

段地址 x 16 = 段的起始地址,用于定位段开始位置,偏移地址用于定位段中的内存单元.

段起始地址只能是16的倍数,段偏移地址为16位,因16位地址的寻址能力为64K,所以一个段最大长是64K

汇编物理地址计算与段地址认识_寻址_04

 CPU可使用不同的段地址+偏移地址来产生一个物理地址,只要段地址(SA) x 16 + 偏移地址(EA) = 物理址址 这个条件.如下图示例:

汇编物理地址计算与段地址认识_段地址_05

 最大偏移寻址计算公式:  段地址 * 16 + 最大寻址值

如:   16位地址最大寻址值为 2^16 -1 = 0xFFFF 

        假如当前段地址为 : 1000H ,那么段起始位置为: 0x1000 * 0x10 = 10000H (0x10000)

        如果按偏移地址来寻址,最大寻址范围为  0x1000 * 0x10 + 0xFFFF = 0x1FFFF

数据在内存段的单元中的描述方式:

       如:   数据  21F60H (0x21F60) 这个数据 ,有下面2种描述

              1.     数据21F60H在内存2000:1F60单元中         (0x2000 * 0x10 + 0x1F60)

               2.    数据21F60H在内存2000段中的1F60单元   (0x2000 * 0x10 + 0x1F60)