学习汇编的第一天
个人学习的一个小笔记吧,
存储器被划分成若干个存储单元,每个存储单元从0开始编号,例如一个存储器有 128个存储单元
那么存储单元就是 0~127
一个存储单元能存1个Byte 1个Byte=8个bit
128个单元可以存储128个 字节
128个字节=1024个比特
1字节就是八个二进制
如果是大容器容量 我们一般会以更大的单位来计算,比如 MB GB TB等等
cpu如果要从内存中读取数据,首先要指定存储单元的地址(我们这的地址就相当于存储单元的门派号,0~127)
cpu在读写数据的时候一定要指明,它对哪个器件进行操作,进行哪种操作,是从中读取数据还是写数据
cpu要想进行数据读写,必须和外部器件(标准说法是芯片) 进行以下三类信息的交互
1.存储单元的地址(地址信息)
2.器件的选择,读或写的命令(控制信息)
3.读或写的数据(数据信息)
cpu通过地址总线 控制总线 数据总线把信息发送到存储器芯片中
cpu从内存中读取数据的过程
1.cpu通过地址总线把地址信息发送过去(这里就相当于寄快递先把要寄的地址写上去)
2.cpu通过控制线发出内存读命令,选中存储器芯片,并且通知它,将要从中读取信息
3.存储器将3号单元中的数8通过数据线送入到CPU
这里我们看到的就是数据总线传输过来的信息了
写操作与读操作的步骤像是。比如我们再向3号单元写入数据26
1.cpu通过地址总线把地址信息3发出
2.cpu通过控制线发出内存写命令,选中存储器芯片,并通知它,要向其中写入数据
3.cpu通过数据线将数据26送入内存的3号单元
下面是三条总线的理解
1.地址总线
一个cpu有十个地址总线,电子计算机中,一根导线可以传送的稳定状态只有两种,高电平或低电平
10根导线可以传送10位二进制数据 而10位二进制可以表示多少个不同的数
最小是0 最高是1023 1个字节等于八个二进制位 就相当于 一次性可以找128个内存单元
寻址能力也是CPU地址总线的宽度,宽度越宽寻址能力越强
一个cpu有N根总线,则可以说这个CPU的地址总线的宽度是N,这样的CPU最多可以寻找 2的n次方个内存单元 1个内存单元就是一个字节
算法 2n/1024= ?MB 寻址能力
2.数据总线
cpu与内存或者其他器件都是通过数据总线进行传输的。
同理数据总线宽度决定了cpu与外界传输速度。 8根数据总线一次可传输8位2进制(也就是一个字节)。 16根数据总线也就是传输16个二进制 两个字节
一根数据总线相当于一个二进制
8088cpu数据总线宽度为8
8086cpu的数据总线宽度为16
3.控制总线
cpu对外部期间都是通过控制总线来进行控制的。这里的控制总线是个总称,控制总线是一些不同控制线的集合。 有多少根控制总线就意味着cpu提供了对外部器件的多少种控制
控制总线的宽度决定了cpu对外部期间的控制能力
前面的内存读写命令都是几根总线 综合发出的
读信号输出 控制线负责由cpu向外传输 读的信号 cpu向该控制线上输出低电平表示将要读取数据
写信号输出 控制线负责传输写信号
各个类型的CPU寻址能力
8080 16根地址总线 寻址能力等于 2的16次方 也就是65536(65536个内存单元 一个内存单元就是一个字节)
65536/1024=64 (KB)
8088 20根地址总线 1048576/1024=1024 KB =1 MB
80286 24根地址总线 16777216/1024=16384 KB= 16 MB
80386 32根地址总线4294967296/1024=4194304 KB=4096 MB=4 GB
数据总线 8根等于1个字节
8080 8根 1个字节
8088 8根 1个字节
8086 16根 2个字节
80286 16根 2个字节
80386 32根 4个字节
想学 看不懂……