01 内存-总线-寄存器-栈

一.程序的执行过程

在这里插入图片描述

二.cpu-内存-总线之间的关系

1.内存
  • 内存地址空间=内存条的RAM地址空间+各种设备ROM地址空间+各种设备的RAM地址空间

  • CPU通过三大总线和内存交互

在这里插入图片描述

2.三大总线
(1)CPU通过三总线从内存中读取数据和指令
  • 地址总线:cpu通过地址总线确定要读取数据或指令在内存中的地址。
    地址总线的宽度=地址总线的条数

8086 20根地址总线,同时传输20位机器码 ,内存的存储单元8bit,所以最大存储空间或最大寻址空间为:2^20*8/8/1024/1024=1MB

  • 数据总线:cpu与内存或者其他器件之间的数据传送通过数据总线传输的。数据总线的宽度决定了CPU单次和外界的数据量,也就是传送速度。

向内存中写入数据89D8H时的数据传送

在这里插入图片描述

  • 控制总线:cpu通过控制总线对外部器件进行控制 控制总线是一些不同控制线的集合 控制总线的宽度 决定了CPU对外部器件有多少种控制
(2) CPU从内存读取数据的过程?

cpu是计算机的核心部件,它控制这计算的运作并进行运算,要让一个CPU工作,就必须向它提供指令和数据,指令和数据都在存储器中存放(内存)中存放,cpu是怎样从内存中读取数据和指令?以CPU从内存中3号单元出读取数据的过程为例

在这里插入图片描述

三.8086-cpu的寻址方式

1.寻址方式:

段地址*16+偏移地址

2.为什么寻址方式是段地址+偏移地址,而不是直接给出地址值?

8086CPU 是16位cpu 但是地址总线是20位,所以需要用段地址+偏移地址的方式合成20位地址

3. 地址怎么合成的
  • 3.1 地址合成过程

在这里插入图片描述

  • 3.2 cpu访问内存单元地址合成示例

在这里插入图片描述

  • CPU要访问123C8H单元,则它给出的段地址和偏移地址满足SA*16+EA=123C8H即可,所以说段地址和偏移地址并不唯一
  • 段地址内存分段管理的起始地址

为了开发方便,我们可以采取分段的方法来管理内存,比如:
地址10000H-1007Fh、10080H-100FFH的内存单元组成2个段,它们的起始地址为:10000H和10080H,段地址为1000H和1008H,大小都为80H

在这里插入图片描述

四.寄存器

1.cpu的大致组成

在这里插入图片描述

2.数据的存储单位
  • 字节:byte,1个字节由8bit组成,可以存储在8位寄存器中

  • 字:word,1个字由2个字节组成,这2个字节分别称为字的高字节和低字节

    比如 数据20000(4E20H,0100111000100000B),高字节的值是78,低字节的值是32

在这里插入图片描述

  • 双字:dword(dobule),2个字组成
  • 四字节:qword(quad word) 8字节组成
3.8086寄存器
      3.1 8086寄存器分类

在这里插入图片描述

  • CPU 不同,寄存器个数和结构都不同
  • 8086 有14个寄存器,都是16位 可以存放2字节
      3.2 通用寄存器
  • 通用寄存器的作用

AX、BX、CX、DX这4个寄存器常用来存放一般性的数据(有时也有特定用途)通常,CPU会先将内存中的数据存储到通用

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值