Byte(Bytes) **字节** 简写B
KB 千字节
MB 兆字节
GB
TB
Bit(Bits) **位** 简写b, 1byte=8bit。 这两者应用的场合不同。通常用bit来作数据传输的单位,(在物理方面表现就是8根数据总线)
为什么1个字节是8bit:
>最开始计算机只是处理数据运算,也就是0-9,加上运算符号,4bit足够了,后来加入了字母,程序符号等,8bit也足够了,而这时诞生了ASCII编码的标准,8bit表示出来的值叫做字节(byte),于是就有了字节这个单位。 **所以1byte等于8bit是计算机发展中的一个约定出来的规则**
### **B与bit**
数据存储是以“字节”(Byte)为单位,
数据传输大多是以“位”(bit,又名“比特”)为单位,
一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位。
### **存储单元**
**存储单元的个数由地址总线宽度(根数)决定**(一个地址总线可对应两个物理地址即两个存储单元:比如说1条地址总线只能访问2个不同的单元,2条地址总线则能访问4个不同的存储单元)
例如,某计算机的内存是2GB,指的就是该计算机的内存中共有2×1024×1024×1024个字节
**在存储器中,通常每个单元存储一个字还是字节?**
一个存储单元是1个字节,即1b,20根地址线,寻址1mb,当然就有1m个存储单元啦
### **字(Word)**
在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称字。
字通常分为若干个字节(每个字节一般是8位)。在存储器中,通常每个单元存储一个字。因此每个字都是可以寻址的。字的长度用位数来表示 。
字(Word)由数据总线的宽度决定
16位的系统中(比如8086微机) 1字 (word)= 2字节(byte)= 16(bit)
32位的系统中(比如win32) 1字(word)= 4字节(byte)=32(bit)
64位的系统中(比如win64)1字(word)= 8字节(byte)=64(bit)
### **字长**
字长是指CPU一次处理数据的长度
计算机的每个字所包含的位数称为字长,计算的字长是指它一次可处理的二进制数字的数目。一般地,大型计算机的字长为32-64位,小型计算机为12-32位,而微型计算机为4-16位。字长是衡量计算机性能的一个重要因素 。
例如:假如一个计算机的字长为16比特,即16个二进制位(2^16=65536),则它所表示的数值信息即为0—65535
数据总线宽度一般为存储单元位宽的整数倍:
>计算机在访问存储器时,用物理地址来进行索引,也就是根据物理地址来找到数据进行存储或读取
而计算机内最小的物理地址单位是字节地址,也就是按照字节来编排存储区的地址
由于每个字节是8位二进制数据,所以读写数据时,需要8位数据总线,一次可同时读写8位数
采用8位数据总线宽度的计算机我们管它叫8位机,对应很早的cpu型号,比如Z80,Intel8086等
>
>但对于能力比较强的cpu来说(比如cpu片内存储器是16位的),如果全速运行一次读写8位有可能不能满足cpu高速的数据运算能力的数据吞吐量,则就将数据总线扩充一下变成两个8位,共16位总线(如8086),一次操作两个字节,间隔一个使用字节地址,即两个两个字节进行读写,这样总线宽度就是16位的了
依此,随着cpu能力的提高,采用4个字节一次的读写,就是32位数据总线,与之对应cpu内部的寄存器也是32位的(称为32位计算机,windows的版本中就有32位的版本)
由此,因为处理数据都是以字节为最小单位(存储单元位宽=8),采用8位、16位、32位、64位这样的方式读取数据,所要求的数据总线一定是8位的整数倍,而且一般会采用2的幂做为扩展位数如8,16,32,64而不会有24,40,48,56这样的方式
所以数据总线宽度由于存储单元地址编码的最小单位是字节等于8的限制,只能是8的整数倍,非整数倍的数据访问方式因无法计算地址而不会被采用
*****
1.百度上:存储单元是CPU访问存储器的基本单位。**以8位二进制作为一个存储单元,也就是一个字节。---也就还说存储单元的大小是恒定不变的就是一个字节。**
1.1百度上:存储字长:一个存储单元存储一串二进制代码(存储字),这串二进制代码的位数称为存储字长,存储字长可以是8位、16位、32位等。-----**再结合存储单元的定义,所以存储字长是8位**
1.2百度上:存储字:是指存放在一个存储单元中的二进制代码组合。
2.地址线一次确定一个存储单元,地址线上值可能取的所有组合确定了存储单元的个数。所以,**存储单元的个数=2^地址线的条数。**
3.存储容量是指存储器可以容纳的二进制信息量,用存储器中存储地址寄存器MAR的编址数与存储字位数的乘积表示。**(存储容量=地址寄存器MAR的编址数\*存储字位数(存储字长))----计算出来的是所能存储的二进制代码的总位数(不是字节)**
4.最后将存储容量转换成字节:**存储容量=地址寄存器MAR的编址数\*存储字位数(存储字长)/8**
*****
*****
**8086,8088指令集作为入门**
当前系统指令集(进阶)
Intel:80x86汇编(推荐)
linux汇编
ARM汇编
汇编语言的主题是汇编指令
汇编指令和机器指令的差别在于指令的表示方法上:
汇编指令是机器指令便于记忆的书写格式
汇编指令是机器指令的助记符
![](https://img.kancloud.cn/51/73/51731b536116acc5bdd15680ea3e0ba8_330x147.png)
![](https://img.kancloud.cn/76/46/764699f4ade7b9795deed050d55c9ef6_458x513.png)
![](https://img.kancloud.cn/11/d4/11d4a635ee9e85626a670c7c4fe1a73a_970x546.png)
![](https://img.kancloud.cn/93/f0/93f04ee9103acfc582e48bb41b1e9673_607x453.png)
![](https://img.kancloud.cn/31/15/3115d51f626476e178f1293ced979b1e_809x510.png)
总线(BUS):专门连接cpu和其他芯片的导线(在物理上表现为一根根的密密麻麻的针脚【引脚】8086有20总线+16数据总线+4?控制总线即40个引脚)
![](https://img.kancloud.cn/24/02/24022f5daa1a5aab41cbfb1a5187849c_597x355.png)
![](https://img.kancloud.cn/5a/09/5a09a8191de17697a79f0f8fd2beb338_489x448.png)
![](https://img.kancloud.cn/c1/33/c133765f18bc216adbc0f9b10e904647_961x517.png)
20根地址总线=2*20次方=1024B*1024B=1MB
![](https://img.kancloud.cn/d2/0b/d20b6fe29fc4bb4fc27b3dc9cd4bbf70_984x527.png)
![](https://img.kancloud.cn/96/f0/96f01d0f0aa77a6f7c1f489bf8847a5b_1003x522.png)
![](https://img.kancloud.cn/39/40/3940ad22e396dc6bb121f90f7cec96df_1009x510.png)
![](https://img.kancloud.cn/dc/2f/dc2fb8692f36a45c6314fcad175527fe_988x527.png)
8086pc机 内存地址空间分配方案(每个指令集分配方案都不一样,所以每个指令集首先要找到它的分配方案)
![](https://img.kancloud.cn/25/a1/25a1808b13d827daacc73b192cc296de_944x452.png)