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

文章介绍了计算机内存的物理地址概念,以及CPU如何通过段地址和偏移地址合成20位的物理地址。8080和8085是8位CPU,而8086是16位CPU,具有更大的寻址能力。段地址乘以16加上偏移地址形成物理地址,每个段最大可寻址64K字节。
摘要由CSDN通过智能技术生成

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

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

 

          

 2.段地址概念:

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

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

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

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

 最大偏移寻址计算公式:  段地址 * 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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林宏权

有你的鼓励,我会更加努力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值