組合語言個人學習筆記 第一章 基礎知識

2021-08-21 13:18:41 字數 4042 閱讀 8987

計算機語言分為三種:

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 偽指令 沒有對應的機器碼...