鱼C论坛

 找回密码
 立即注册
查看: 2204|回复: 0

[学习笔记] 《汇编语言》第二章2.4节~2.8节

[复制链接]
发表于 2017-7-16 12:00:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

2.4节 物理地址
CPU在访问内存地址单元时,必须给出内存单元的地址,而内存单元构成的空间是一个一维的线性空间,每一个内存单元在这个空间都有唯一的地址,而这个地址就是物理地址。
CPU送给存储器的必须是一个物理地址
下面几节就是讨论CPU在内部是如何形成物理地址的?

2.5节 16位结构的CPU
一个16位结构的CPU(如8086CPU)有如下结构特性:
1、运算器一次最多可以处理16位的数据;
2、寄存器的最大宽度为16位;
3、寄存器和运算器之间的通路位16位。

概括来讲就是16位的CPU在内部能够一次性处理、传输、暂时存储的信息最大的长度是16位。

2.6节 8086CPU给出物理地址的方法
8086CPU有20位的地址总线,而CPU内部一次性只能处理最大为16位的信息。下面就说的是用某一办法将2个16位的数据转换为20位的物理地址
步骤:
(1)CPU相关部件提供一个16位段地址和16位的偏移地址;
(2)将段地址和偏移地址送入地址加法器;
(3)在地址加法器中将16位的地址合成为一个20位的物理地址;
(4)地址加法器通过内部总线将物理地址传送到输入输出控制电路;
(5)输入输出控制电路将20位物理地址送上地址总线;
(6)20位物理地址被地址总线送到寄存器。

其中地址加法器采用物理地址 = 段地址 * 16 + 偏移地址的方法合成物理地址
如:有段地址1230,偏移地址00C8。它们通过地址加法器合成一个1230 * 16 + 00C8 = 123C8的20位的物理地址,最后通过地址总线送到内存中。

2.7节 ”段地址 * 16 + 偏移地址 = 物理地址“的本质含义
段地址 * 16 + 偏移地址 = 物理地址的本质含义是:CPU在访问内存时,用一个基础地址(段地址 * 16)和一个相对于基础地址的偏移地址相加,从而给出内存单元的物理地址

2.8节 段的概念
段地址并不是一段地址,段地址只是某一个具体地址,如:基础地址为:10000H,那么它的段地址就是1000H
需要注意的是:段地址必须是16的倍数,所以一个段的起始地址也是16的倍数;偏移地址为16位,所以它的范围为0~FFFFH,段地址也是如此。

总结:
(1)段地址 * 16 + 偏移地址 = 物理地址,即SA * 16 + EA = 物理地址
(2)偏移地址为16位,所以它的范围为0~FFFFH,段地址也是如此
(3)段地址必须是16的倍数,所以一个段的起始地址也是16的倍数
(4)可根据需要将地址连续、起始地址为16的倍数的一组内存单元定义为一个段

评分

参与人数 1鱼币 +5 收起 理由
小甲鱼 + 5

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 03:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表