計算機語言分為三種:
1.高階語言(c語言,c++,python等等)
2.機器語言(計算機能夠直接識別的機器碼,如:1000100111011000)
3.組合語言(將機器語言翻譯為類似英文)
組合語言的主體是彙編指令;
彙編指令和機器指令的差別在於指令的表示方法上,彙編指令是機器指令便於記憶的書寫格式。
彙編指令是機器指令的助記符。
例如:機器指令:1000100111011000
操作:將暫存器bx的內容送到ax中;
彙編指令:mov ax,bx;
簡單來說,暫存器可以理解為嵌入到cpu中可以儲存資料的器件,乙個cpu中有多個暫存器,ax是其中乙個暫存器的代號,bx是另乙個暫存器的代號。
暫存器比高階快取和二級快取要低一級,更接近cpu。
程式編寫執行的流程:
高階語言————>彙編指令————>編譯器————>機器碼————>計算機
理論上說,越高階的語言執行效率越低
組合語言由以下3類組成:
1、彙編指令(機器碼的助記符)
2、偽指令(由編譯器執行)
3、其他符號(由編譯器識別,例如,加減乘除)
cpu是計算機的核心部件,它控制整個計算機的運作並進行運算,要想讓乙個cpu運作,就必須向它提供指令和資料。指令和資料在儲存器中存放也就是平常所說的記憶體。
通俗的講,指令是告訴cpu要怎麼做,資料是告訴cpu哪些是被做的,哪些是做別的;
計算機任何乙個部件拆開都有固定的儲存器,包括顯示卡,網絡卡,bios(主機板)。
在一台計算機中記憶體的作用僅次於cpu,離開了記憶體,效能再好的cpu也無法工作。
磁碟不同於記憶體,磁碟上的資料或程式如果不讀到記憶體中,就無法被cpu使用。
虛擬記憶體:如果記憶體不夠,一些不怎麼用的記憶體臨時放到硬碟裡,用到的時候再調到記憶體中,如果用到虛擬記憶體讀東西會比較慢,因為cpu和記憶體的速度是比較快的,記憶體和硬碟的速度是比較慢的。
指令和資料是應用上的概念,在記憶體或磁碟上指令和資料沒有任何區別,都是二進位制資訊。
例如:可以看作16進製制資料:89d8h(後面h代表hex,16進製制)
也可以看也可以看作程式的指令,mov ax,bx
儲存器被劃為若干個儲存單元,每個儲存單元從0開始順序編號;
例如,乙個儲存器有128個儲存單元,編號從0~127
注:儲存器不只有記憶體,比如還有視訊記憶體(顯示卡裡有乙個記憶體,稱之為視訊記憶體,顯示卡中有圖形處理器gpu,將視訊記憶體中的資料讀取出來,直接對映到螢幕上)
對於大容量的儲存器一般還用以下單位來計量容量:
1kb=1024byte
1mb=1024kb
1gb=1024mb
1tb=1024gb
磁碟的容量單位同記憶體一樣。
cpu要想進行資料的讀寫,必須和外部器件(標準說法是晶元)進行三類資訊的互動:
1、儲存單元的位址(位址資訊)
2、器件的選擇,讀或寫命令(控制資訊)
3、讀或寫的資料(資料資訊)
電子計算機能處理、傳輸的資訊都是電訊號,電訊號要用導線傳送。
在計算機有專門連線cpu和其他晶元的導線,通常稱為匯流排。
匯流排在物理上是一根根導線的集合;
在邏輯上劃分為:
位址匯流排;
資料匯流排;
控制匯流排;
分別對應傳輸位址,傳輸資料,傳輸控制;
如圖:
上圖記憶體不單指記憶體條,還有顯示卡、網絡卡等記憶體。
如果一條機器碼從位址匯流排傳輸過來,cpu會將機器碼作為位址來處理,同理,如果從資料匯流排傳輸過來,cpu會將機器碼作為資料來處理,控制匯流排也一樣。
對於8086cpu,下面的機器碼能完成從3號單元讀取資料:
機器碼:101000000000001100000000
含義:從3號單元讀取資料送入暫存器ax中
cpu是通過位址匯流排來指定儲存單元的。位址匯流排上能傳送多少個不同的資訊,cpu就可以對多少個儲存單元進行定址。
要達到64位的速度,首先要64位的cpu,其次還要有64位的作業系統,還要有64位的軟體。
乙個cpu有n個位址匯流排,則可以說cpu的匯流排寬度為n。
這樣的cpu最多可以尋找2的n次方個記憶體單元。乙個位址匯流排可以索引乙個記憶體單元。
cpu與記憶體或其他器件之間的資料傳送是通過資料匯流排來進行的。資料匯流排的寬度決定了cpu和外界的資料傳輸速度。
cpu對外部器件的控制是通過控制匯流排來進行的。這裡控制匯流排是個總稱,控制匯流排是一些不同控制線的集合。
有多少種控制匯流排就對應著cpu對外部器件的多少種控制。
所以,控制匯流排的寬度決定了cpu對外部器件的控制能力。
前面所講的記憶體讀或寫命令是由幾根控制線綜合發出的:
其中有一根名為讀訊號輸出控制線負責由cpu向外傳送讀訊號,cpu向該控制線輸出低電平表示將要讀取資料;
有一根名為寫訊號輸出控制線負責由cpu向外傳送寫訊號。
小結
1、彙編指令是機器指令的助記符,同機器指令一一對應。
2、每一種cpu都有自己的彙編指令集。
3、cpu可以直接使用的資訊在儲存器中存放。
4、在儲存器中,資料和指令沒有任何區別,都是二進位制資訊。
5、儲存單元從零開始順序編號。
6、乙個儲存單元可以儲存8個bit,即8位二進位制數。
7、1b=8b,1kb=1024b, 1mb=1024kb, 1gb=1024mb
8、每乙個cpu晶元都有許多管腳,這些管腳和匯流排相連。也可以說,這些管腳引出匯流排。乙個cpu可以引出三種匯流排的寬度標誌了這個cpu不同方面的效能:
位址匯流排的寬度決定了cpu的定址能力
資料匯流排的寬度決定了cpu與其他器件進行傳送時的一次資料傳送量。
控制匯流排的寬度決定了cpu對系統中其他器件的kong控制能力。
乙個cpu的位址匯流排寬度為10,那麼可以定址1024個記憶體單元,這1024個可尋到的記憶體單元就構成這個cpu的記憶體位址空間。首先需要介紹主機板和介面卡。
在每一台pc機中,都有乙個主機板,主機板上有核心器件和一些主要器件,這些器件通過匯流排(位址匯流排、資料匯流排、控制匯流排)相連。
計算機系統中,所有可用程式控制其工作的裝置,必須受到cpu的控制。cpu對外部裝置都不能直接控制,如顯示器、音箱、印表機等。直接控制這些裝置進行工作的是插在擴充套件插槽上的介面卡,如顯示卡。
從讀寫性質上看,分為兩類:
隨機儲存器(ram)和唯讀儲存器(rom)
(斷電之後,隨機儲存器中的資料會遺失)
唯讀儲存器:
1、裝有bios(basic input/output system基礎輸入輸出系統)的rom。
(bios開機時檢測cpu,記憶體等是否插好,開啟計算機時第乙個啟動的程式)
注:如果乙個計算機病毒可以刷到bios,防毒軟體就無法起作用,因為防毒軟體是載入到dos時起作用的。
bios是由主機板和各類介面卡(如顯示卡、網絡卡)廠商提供的軟體系統,可以通過它利用該硬體裝置進行最基礎的輸入輸出。在主機板和某些介面卡上插有儲存相應bios的rom。
功能和連線上分類:
隨機儲存器ram
裝有bios的rom
介面卡上的ram
pc機中各類邏輯儲存器的連線情況如圖:
1、都和cpu的匯流排相連。
2、cpu對它們進行讀或寫的時候都通過控制線發出記憶體讀寫命令。
將各類儲存器看作乙個邏輯儲存器的情況如圖:
不同計算機的記憶體位址空間的分配情況是不同的。
最終執行程式的是cpu,我們用彙編程式設計的時候必須從cpu的角度考慮問題。
對cpu來講,系統中的所有儲存器中的儲存單元都處於乙個統一的邏輯儲存器中,它的容量受cpu定址能力的限制,這個邏輯儲存器就是我們所說的記憶體位址空間。
組合語言第一章學習筆記
第一章學習筆記 重新看了一遍第一章,發現以前看書太失敗了,看了不如不看,純粹是在浪費時間。以前看時沒概念,看到不懂的似懂非懂過去了。到現在再看時才真的看懂他說的是什麼。這章裡沒有太多內容,只是把儲存器,匯流排結構還有儲存器晶元介紹了一遍。儲存器可以按功能,用途,讀寫方式等分類,都是概念了。本書牽扯到...
《組合語言》第一章學習筆記
也就是記憶體,存放指令和資料,磁碟上的資料或程式讀到記憶體中 1kb 1024b 1mb 1024kb 1gb 1024mb 1tb 1024gb 從0開始順序編號,乙個儲存單元儲存乙個位元組 每個cpu晶元都有許多管腳,這些管腳和匯流排相連。cpu通過位址匯流排來指定儲存單元 乙個cpu有n根位址...
《組合語言》筆記第一章
看了王爽的 組合語言 感覺寫的很好,真的是通俗易懂,為了大家也可以快速瀏覽一下組合語言,我特意將筆記一章一章寫出來。獨樂了不如眾樂樂,不會組合語言的程式設計師不是好程式設計師!一 基礎知識 1.1.組合語言由三類指令組成 1 彙編指令 機器語言的助記符,有對應的機器語言 2 偽指令 沒有對應的機器碼...