- 每一个CPU芯片都有许多管脚这些管脚和总线相连,CPU通* * 过总线跟外部器件进行交互
- 总线:一根根导线的集合
-
计算机基本结构.png
- 它的宽度决定了CPU的寻址能力
-
8086的地址总线宽度是20所以寻址能力是1M( 2^20 )
- 它的宽度决定了CPU的单次数据传送量,也就是数据传送速度
- 8086的数据总线宽度是16所以单次最大传递2个字节的数据
-
它的宽喥决定了CPU对其他器件的控制能力、能有多少种控制
数据总线:8088的数据总线宽度是8,8086的数据总线宽度是16分别向内存中写入89D8H如下图:注意:这里昰16进制,后方的H是单词Hexadecimal的意思
- 内存地址空间的大小受CPU地址总线宽度的限制。8086的地址总线宽度为20可以定位2^20个不同的内存单元(内存地址范围0x00000~0xFFFFF),所以8086的内存空间大小为1MB
- 0xFFFF:主存储器可读可写
- 0xA0000~0xBFFFF:向显存中写入数据,这些数据会被显卡输出到显示器可读可写
-
存储器的逻辑连接.png
存儲器的物理地址情况.png
存储器的逻辑连接对应物理地址.png
内部部件之间由总线连接
- 对程序员来说,CPU中最主要部件是寄存器可以通过改变寄存器的内容来实现对CPU的控制
- 不同的CPU,寄存器的个数、结构是不相同的(8086是16位结构的CPU)
-
- AX、BX、CX、DX这4个寄存器通常用来存放一般性的数据称为通鼡寄存器(有时也有特定用途)
- AX 寄存器称为累加器,常用于存放算术、逻辑运算中的操作数或结果另外,所有的I/O指令都要使用累加器与外设接口传递数据
- BX 寄存器称为,常用来存放访问内存时的地址
- CX 寄存器称为计数寄存器,在循环、串操作指令中用作计数器
- DX 寄存器称為数据寄存器,在中的I/O指令中存放的地址
在做双字长乘除法运算时,DX 与AX合起来存放一个双字长数(32位)其中DX存放高16位,AX存放低16位
- 通常,CPU會先将内存中的数据存储到通用寄存器中然后再对通用寄存器中的数据进行运算
- 假设内存中有块红色内存空间的值是3,现在想把它的值加1并将结果存储到蓝色内存空间
- CPU首先会将红色内存空间的值放到AX寄存器中:mov ax,红色内存空间
-
最后将值赋值给内存空间:mov 蓝色内存空间,ax
-
AX、BX、CX、DX这4个通用寄存器都是16位的,如下图所示
- 上一代8086的寄存器都是8位的为了保证兼容, AX、BX、CX、DX都可分为2个独立的8位寄存器来使用
-
高低位寄存器1.png
高低位寄存器2.png
- 在汇编的数据存储中有2个比较常用的单位
- 字节:byte,1个字节由8bit组成可以存储在8位寄存器中
- 字:word,1个字由2个字节组成这2個字节分别称为字的高字节和低字节
-
,高字节的值是78低字节的值是32
- 1个字可以存在1个16位寄存器中,这个字的高字节、低字节分别存储在这個寄存器的高8位寄存器、低8位寄存器中