引言:
組合語言是直接在硬體之上工作的程式語言,我們首先要了解硬體系統的結構才能有效地應用組合語言對其進行程式設計。
彙編課程的重點放在如何利用硬體系統的變成結構和指令集有效靈活地控制系統進行工作。
1.1 機器語言
機器語言是機器指令的集合。機器指令展開來講就是一台機器可以正確執行的命令。電子計算機的機器指令是一列二進位制數字。計算機將至轉變為一系列高低電平。
指令:01010000 (push ax)
電平脈衝:
組合語言的主體是彙編指令。
彙編指令和機器指令的差別在於指令的表示方法上。彙編指令是機器指令便於記憶的書寫格式。
彙編指令是機器指令的助記符。
暫存器:簡單的講是cpu中可以儲存資料的器件,乙個cpu中有多個暫存器。
計算機能讀懂的只有機器指令。
1.2 組合語言的產生
1.3 組合語言的組成
組合語言由以下3類組成:
1、彙編指令(機器碼的助記符)
2、偽指令 (由編譯器執行)
3、其它符號(由編譯器識別)
組合語言的核心是彙編指令,它決定了組合語言的特性。
1.4 儲存器
cpu 是計算機的核心部件.它控制整個計算機的運作並進行運算,要想讓乙個cpu 工作,就必須向它提供指令和資料。
指令和資料在儲存器中存放,也就是平時所說的記憶體
在一台pc機中記憶體的作用僅次於cpu。
磁碟不同於記憶體,磁碟上的資料或程式如果不讀到記憶體中,就無法被cpu 使用。
1.5 指令和資料
指令和資料是應用上的概念,在記憶體或磁碟上,指令和資料沒有任何區別,都是二進位制資訊。
1.6 存貯單元
儲存器被劃分為若干個儲存單元,每個儲存單元從0開始順序編號。
1.7 cpu對儲存器的讀寫
cpu要想進行資料的讀寫,必須和外部器件(標準的說法是晶元)進行三類資訊的互動:
1.儲存單元的位址(位址資訊)
2.器件的選擇,讀或寫命令(控制資訊)
3.讀或寫的資料(資料資訊)
在計算機中專門有連線cpu和其他晶元的導線,通常稱為匯流排。
1.物理上:一根根導線的集合;
2.邏輯上劃分為:
(1)位址匯流排
(2)資料匯流排
(3)控制匯流排
匯流排在物理上劃分的圖示
1.8 位址匯流排
cpu是通過位址匯流排來指定儲存單元的。
位址匯流排上能傳送多少個不同的資訊,cpu就可以對多少個儲存單元進行定址。
乙個cpu有n根位址匯流排,則可以說這個cpu的位址匯流排的寬度為n,這樣的cpu最多可以尋找2的n次方個記憶體單元。
1.9 資料匯流排
cpu與記憶體或其它器件之間的資料傳送是通過資料匯流排來進行的。
資料匯流排的寬度決定了cpu和外界的資料傳送速度。
1.10 控制匯流排
cpu對外部器件的控制是通過控制匯流排來進行的。在這裡控制匯流排是個總稱,控制匯流排是一些不同控制線的集合。
有多少根控制匯流排,就意味著cpu提供了對外部器件的多少種控制。
1.11 記憶體位址空間
乙個cpu的位址線寬度為10,那麼可以定址1024個記憶體單元,這1024個可尋到的記憶體單元就構成這個cpu的記憶體位址空間。
1.12 主機板
在每一台pc機中,都有乙個主機板,主機板上有核心器件和一些主要器件,這些器件通過匯流排(位址匯流排、資料匯流排、控制匯流排)相連。
1.13 介面卡
cpu對外部裝置不能直接控制,如顯示器、音箱、印表機等。直接控制這些裝置進行工作的是插在擴充套件插槽上的介面卡。
1.14 各類儲存器晶元
從讀寫屬性上看分為兩類:隨機儲存器(ram)和唯讀儲存器(rom)
從功能和連線上分類:
1.隨機儲存器ram
2.裝有bios的rom
3.介面卡上的ram
1.15 記憶體位址空間
所有的物理儲存器被看作乙個由若干儲存單元組成的邏輯儲存器;
每個物理儲存器在這個邏輯儲存器中占有乙個位址段,即一段位址空間;
cpu在這段位址空間中讀寫資料,實際上就是在相對應的物理儲存器中讀寫資料。
不同的計算機系統的記憶體位址空間分配情況是不同的。
最終執行程式的是cpu,我們用彙編程式設計的時候,必須要從cpu角度考慮問題。
對cpu來講,系統中的所有儲存器中的儲存單元都處於乙個統一的邏輯儲存器中,它的容量受cpu定址能力的限制。這個邏輯儲存器即是我們所說的記憶體位址空間。
《組合語言》王爽第三版 實驗9
datas segment 此處輸入資料段 db w 00000010b,e 00000010b,l 00000010b,c 00000010b,o 00000010b db m 00000010b,e 00000010b,0,t 00100100b,o 00100100b,0 db m 01110...
王爽 組合語言第三版實驗7
這個題目做了很久,使用了2中方法做出了結果,不過目前在單步除錯時還有點疑問。題目 power idea公司從1975成立一直到1995年的基本情況被定義到了datasg中,程式設計將datasg段中的資料寫入到table段中,並計算21年中的人均收入 取整 結果儲存到table段中 兩種方法我都使用...
《組合語言(第三版)》王爽,實驗九
不知道為什麼,在win7下用的emu8086,顯示會錯位,到不了中間位置 在網上找了下別人的 發現即使是在別人那裡能正常顯示在中間位置,複製到我這裡都會顯示為上圖所示的樣子。下面是 定義資料段的時候為了後面不用將ascii碼和屬性分開讀取,就定義成如下這樣比較繁瑣的形式了。其實做的時候第一時間沒想到...