文章目录
一.程序的执行过程
二.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会先将内存中的数据存储到通用