计算机的组成
计算机中的总线
- 物理上:一根根导线的集合
- 逻辑上划分为:地址总线 数据总线 控制总线
- 机器码的不同翻译
CPU
- CPU的组成
运算器进行信息处理
寄存器进行信息存储
控制器协调各种器件进行工作
内部总线实现CPU内部各个期间之间的联系
物理地址
- CPU访问内存单元时要给出内存单元的地址
- 所有的内存单元构成的存储空间是一个一维的线性空间
- 每一个内存空间在这个空间中都有唯一的地址,这个唯一的地址称为物理地址
- 因为8086有20位地址总线,寻址能力为1M
8086是16为结构的CPU,寻址能力为64KB
所以用两个16位地址(段地址、偏移地址)合成一个20位的物理地址
合成物理地址
- 物理地址 = 段地址 * 16 + 偏移地址
- 过程
- 访问同一个物理地址可以有不同的方案
- 用分段的方式管理内存:内存并没有分段,段的划分来自CPU
段地址*16
必然是16的倍数,所以一个段的起始地址也一定是16的倍数(如果是16进制,就是段地址*10
)- 偏移地址为16位,16位地址的寻址能力为64K,所以一个段的长度最大为64K,变化范围为0~FFFFH
段寄存器
- CS作为段地址,IP作为偏移地址,进入位置加法器之后,形成20位的物理地址,通过总线传到内存之后,找到要执行的指令,再传到CPU里面,让CPU执行
- 在CS和IP指示下代码的执行
因为CS是2000,IP是0000,经过地址加法器一合成,成为20000,把它翻译成指令之后就是一个3字节的指令,这个指令通过数据总线传到CPU里面,通过指令缓冲器,进入到执行控制器,结果AX 0123 ,当把这条指令执行完之后,发现它是一个3字节的数,IP会自动加3(IP = IP + 所读取指令的长度),所以下次找到的地址是20003
- 代码演示
修改CS和IP的值