第一章: 1. 什麼是彙編語言html
《微機原理與接口》 研究PC機及CPU物理結構和編程結構的全面研究工具
《組成原理》計算機通常結構、功能、性能的研究性能
《彙編語言》如何利用硬件系統的編程結構和指令集有效靈活地控制系統進行工做。優化
彙編語言書籍:spa
彙編語言 王爽3d
彙編語言的工做過程調試
第一步:編寫源程序code
// 1.asm assume cs:codesg codesg segment ;定義一個段,段的名稱爲"codesg", 這個段今後開始 mov ax, 0123H mov bx, 0456H add ax, bx add ax, ax mov ax, 4c00H int 21H codesg ends ; 名稱爲"codesg"的段到此結束 end ; 彙編程序序的結束
程序解釋:htm
彙編程序由彙編指令與僞指令組成。
彙編指令由機器執行,僞指令由編譯器執行。
assume 僞指令 表示某一段寄存器和程序中的某一個segment..ends 定義的段相關聯。
segment 與 ends 是成對使用的僞指令,功能是定義一個段, codesg 是段名,能夠任意定義。
end 也是僞指令,表示彙編程序的結束
第二步: 編譯源程序
使用DosBox masm 5.0 編譯環境
mount C /usrs/David/Documents/masm
C:
第1步:調用 masm 程序
第2步:編譯,輸入源文件名,不用後綴
C:\src\2.asm
輸入源文件後,會提示輸入目標文件名稱
程序編譯後,會生成一個2.obj 的目標文件
第3步:鏈接,生成.exe 可執行文件
調用 link 程序
鏈接的做用:
1. 當源程序很大時,能夠分爲多個源文件來編譯,每一個源程序編譯成目標文件後,再用鏈接程序將它們鏈接到一塊兒,生成一個可執行文件。
2. 當程序中調用了某個庫文件中的子程序,須要將這個庫文件和該程序生成的目標文件鏈接到一塊兒,生成一個可執行文件。
問題: 誰將可執行文件中的程序裝載進入內存並使它運行?
CPU 向 內存 讀取數據的過程
第一步:CPU 經過地址總線向內存地址發出
第二步:CPU 經過控制總線將讀寫命令發出
第三步:CPU 經過數據總線與內存進行讀寫數據
彙編語言程序具備訪問和控制CPU組件的能力,處理器的主要組件分類:
* 控制單元
* 執行單元
* 寄存器
* 標誌
一個CPU有N根地址線,則能夠說這個CPU的地址總線寬度爲N。這樣的CPU最多能夠尋找2的N次方個內存單元。
數據總線的寬度決定了CPU和外界的數據傳送速度。8根數據總線一次可傳送一個8位二進制數據(即一個字節)。16根數據總線一次可傳送2個字節。
控制總線的數量,決定了CPU提供了對外部器件的多少種控制。
主板與內存的概念
內存地址空間的概念
要完整的描述一個內存單元,須要兩種信息:
內存單元地址
內存單元長度
開發環境
彙編器(MASM, NASM, GAS, HLA)
鏈接器
調試器
高級語言的編譯器
目標代碼反彙編器
用於優化的簡檔生成工具
安裝 binutils
https://www.gnu.org/software/binutils/binutils.html