組合語言零基礎入門學習筆記(一)
組合語言零基礎入門學習
基礎知識
組合語言是直接在硬體之上工作的程式語言,我們首先要了解硬體系統的結構,才能有效地應用匯編語言對其程式設計。
我們的原則是,以後用到的知識,以後再說。
1.1機器語言
機器語言是機器指令的集合。
機器指令展開來講就是一臺機器可以正確執行的命令。
1.2彙編的產生
組合語言的主體是彙編指令。
彙編指令和機器指令的差別在於指令的表示方法上。
彙編指令是機器指令便於記憶的書寫格式。
操作:暫存器BX的內容送到AX中
機器指令:1000 1001 1101 1000
彙編指令:mov ax,bx
(暫存器,簡單地講是CPU中可以儲存資料的器件,一個CPU中有多個暫存器。AX是其中一個暫存器的代號,BX同理)
1.3彙編的組成
指令組成:
1.彙編指令:機器碼的助記符,有對應的機器碼。
2.偽指令:沒有對應的機器碼,由編譯器執行,計算機並不執行。
3.其他符號:如+ - * /等,由編譯器識別,沒有對應的機器碼。
組合語言的核心是彙編指令,它決定了組合語言的特性。
1.4儲存器
CPU是計算機的核心部件,它控制整個計算機的運作並進行運算。
要想讓一個CPU工作,就必須向它提供指令和資料。
指令和資料在儲存器中存放,也就是我們平時所說的記憶體。
1.5指令和資料
指令和資料是應用上的概念。
在記憶體和磁碟上,指令和資料沒有任何區別,都是二進位制資訊。
1.6儲存單元
儲存器別劃分成若干個儲存單元,每個儲存單元從0開始順序編號,如0~127。
電子計算機的最小資訊單位是bit(位元),一個二進位制位。
8bit = 1byte(位元組)
1KB = 1024B 1MB = 1024KB 1GB = 1024MB 1TB = 1024GB
1.7CPU對儲存器的讀寫
CPU進行資料的讀寫,必須和外部器件進行3類資訊的互動:
- 儲存單元的地址(地址資訊);
- 器件的選擇,讀或寫的命令(控制資訊);
- 讀或寫的資料(資料資訊)。
在計算機中專門有連線CPU和其他晶片的導線,通常稱為匯流排。
匯流排從邏輯上分為3類:
- 地址匯流排
- 控制匯流排
- 資料匯流排
1.8地址匯流排
CPU是通過地址匯流排來指定儲存單元的。
一個CPU有N根地址線,則可以說這個CPU的地址匯流排寬度為N。
這樣的CPU最多可以尋找2的N次方個記憶體單元。
1.9資料匯流排
CPU與記憶體或其他器件之間的資料傳送是通過資料匯流排來進行的。
資料匯流排的寬度決定了CPU和外界的資料傳送速度。
1.10控制匯流排
CPU對外部器件的控制是通過控制匯流排來進行的。
控制匯流排的寬度決定了CPU對外部器件的控制能力。
1.11主機板
主機板,又叫主機板(mainboard)、系統板(systemboard)、或母板(motherboard)。它安裝在機箱內,是微機最基本的也是最重要的部件之一。主機板一般為矩形電路板,上面安裝了組成計算機的主要電路系統,一般有BIOS晶片、I/O控制晶片、鍵盤和皮膚控制開關介面、指示燈插接件、擴充插槽、主機板及插卡的直流電源供電接外掛等元件。
1.12介面卡
能插入計算機、伺服器或大型主機的板卡,通過光纖通道或SCSI把計算機連線到儲存器或儲存器網。主機匯流排介面卡(Host Bus Adapter,HBA)是一個在伺服器和儲存裝置間提供輸入/輸出(I/O)處理和物理連線的電路板或積體電路介面卡。因為HBA減輕了主處理器在資料儲存和檢索任務的負擔,它能夠提高伺服器的效能。一個HBA和與之相連的磁碟子系統有時一起被稱作一個磁碟通道。
1.13各類儲存器晶片
- 隨機儲存器
- 裝有BIOS(Basic Input/Onput System,基本輸入/輸出系統)的ROM
- 介面卡上的RAM
1.14記憶體地址空間
記憶體地址空間的大小受CPU地址匯流排寬度的限制。
相關文章
- 組合語言-學習記錄(二)組合語言
- 組合語言學習筆記03——暫存器(CPU工作原理)組合語言筆記
- c語言程式基礎學習筆記C語言筆記
- 零基礎學習Alfred(一):入門操作Alfred
- Python零基礎學習筆記(二十)——tuple元組Python筆記
- node 學習筆記 基礎入門筆記
- C語言0基礎入門遊戲輔助開發—學習筆記01C語言遊戲筆記
- Solidity語言學習筆記————32、建立合約Solid筆記
- 《JavaScript語言精粹》學習筆記一JavaScript筆記
- Go語言核心36講(Go語言基礎知識一)--學習筆記Go筆記
- c語言入門這一篇就夠了-學習筆記(一萬字)C語言筆記
- Dubbo學習筆記(一) 入門筆記
- JavaScript入門-學習筆記(一)JavaScript筆記
- 學習筆記(4):零基礎掌握 Python 入門到實戰-判斷語句,見機行事筆記Python
- 學習筆記(二十三):ArkTS語言-模組筆記
- 組合數學學習筆記筆記
- 【學習筆記】組合數學筆記
- C 語言學習筆記筆記
- C語言學習筆記C語言筆記
- 入門程式設計學習,適合學python語言嗎?程式設計Python
- CANopen學習筆記(一)CANopen入門筆記
- Go語言快速入門筆記01Go筆記
- Python零基礎學習筆記(十八)——break語句和continue語句Python筆記
- Solidity語言學習筆記————35、抽象合約和介面Solid筆記抽象
- 演算法學習筆記(16): 組合數學基礎演算法筆記
- 智慧合約從入門到精通:Solidity組合語言Solid組合語言
- Dart程式語言入門學習Dart
- 記一次flink入門學習筆記筆記
- Dart語言學習筆記(一) —— Dart簡介Dart筆記
- 零基礎看得懂的C語言入門教程C語言
- 組合語言-基礎功能組合語言
- 學習程式語言選擇Python怎麼樣?適合入門學習?Python
- 非常適合小白入門的Go語言學習路線Go
- webpack4入門學習筆記(一)Web筆記
- Go語言核心36講(Go語言基礎知識五)--學習筆記Go筆記
- Go語言核心36講(Go語言基礎知識四)--學習筆記Go筆記
- Go語言核心36講(Go語言基礎知識三)--學習筆記Go筆記
- Go語言核心36講(Go語言基礎知識六)--學習筆記Go筆記