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匯編
匯編語言的主題是匯編指令
匯編指令和機器指令的差別在于指令的表示方法上:
匯編指令是機器指令便于記憶的書寫格式
匯編指令是機器指令的助記符





總線(BUS):專門連接cpu和其他芯片的導線(在物理上表現為一根根的密密麻麻的針腳【引腳】8086有20總線+16數據總線+4?控制總線即40個引腳)



20根地址總線=2*20次方=1024B*1024B=1MB




8086pc機 內存地址空間分配方案(每個指令集分配方案都不一樣,所以每個指令集首先要找到它的分配方案)
