本人當前為一名大二學生,網路工程專業。本學期選修了《組合語言》這門課程,作為一項作業任務,同時也是為了梳理所學知識,更好地理解和掌握組合語言撰寫了這篇部落格。我所用的教材是由清華大學出版社出版的《組合語言》第3版(如下),以下的內容來自於但不限於教材以及老師的課件。
計算機程式語言的演進
組合語言源程式的組成
計算機硬體系統的基本結構
cpu對儲存器的讀寫和匯流排
記憶體位址空間
過程:機器語言——>組合語言——>高階語言
例項對比三種語言:
程式設計完成運算c=a+b
10100000 0000000000000000
00000010 00000110 0000000000000001
10100010 0000000000000010
mov al,a
add al,b
mov c,al
c=a+b
機器語言
組合語言
c語言三種語言對比:
機器語言
組合語言
高階語言
計算機能否直接識別
能 不能
不能易用性差中
好 佔據空間小小
大 執行速度快快
慢用途特殊加密/解密
系統核心要求速度快,**短的程式
直接操縱i/o資訊保安
一般性系統級和應用層軟體開發
1組合語言的核心是彙編指令,它決定了組合語言的特性。;this is a 8086 assemble program
2 assume cs:code, ds:
data
3data segment
4 string db '
hi~ everyone$'5
data ends
6code segment
7start:
movax,data
8mov
ds,ax
9mov
dx, offset string
10mov
ah,09h
11int
21h12
movah,4ch
13int
21h14
code ends
15 end start
cpu對儲存器的讀寫
cpu想從記憶體中讀資料,首先要指定儲存單元的位址。另外,cpu還要指明它要對哪乙個器件進行操作,因為在一台微機中不止儲存器這一種器件,還要指明進行哪種操作,是從中讀出資料,還是向裡面寫入資料。
由此可見,cpu要進行資料的讀寫,必須和外部器件(標準的說法是晶元)進行3類資訊的互動。
3類匯流排
那麼cpu是通過什麼將位址、資料和控制資訊傳到儲存器晶元的呢?電子計算機能處理、傳輸的資訊都是電訊號,電訊號當然由導線來傳送。在計算機中專門有連線計算機和其他晶元的導線,通常稱為匯流排。根據傳送資訊的不同,匯流排從邏輯上又分為3類:位址匯流排、控制匯流排和資料匯流排。
資料匯流排:其寬度決定了cpu與其他器件進行資料傳送時的一次資料傳送量
控制匯流排:其寬度決定了cpu對系統中其他器件的控制能力
各類儲存器晶元
上述那些儲存器,在物理上是獨立的器件,但有2點是相同的,即:①都和cpu匯流排相連;②cpu對它們進行讀或寫的時候都通過控制線發出記憶體讀寫命令;
這也就是說,cpu在操控它們的時候,把它們都當作記憶體來看待,把它們總的看作乙個由若干儲存單元組成的邏輯儲存器,即我們所說的記憶體位址空間。
組合語言第一章 基礎知識
組合語言是各種cpu提供的機器指令的助記符的集合 操作 暫存器bx的內容送到ax中 機器指令 1000100111011000 彙編指令 mov ax,bx 暫存器 簡單的講是cpu可以儲存資料的器件,乙個cpu有多個暫存器,ax是其中乙個暫存器的代號,bx是另乙個暫存器的代號 用匯編寫程式後,可通...
組合語言 第一章 基礎知識
1 機器語言是機器指令的集合。機器指令是一台機器可以正確執行的的命令。電子計算機的機器指令是一列二進位制數字。2 直接面向機器與機器的硬體操作一一對應。計算機可以直接識別執行,使用機器語言可以充分發揮計算機的硬體功能。3 缺點 依賴機器硬體,機器指令很難記憶,直接使用機器語言編制程式極易出錯,並且難...
組合語言 第一章 基礎知識
1.機器語言 機器語言是機器指令的集合。機器指令是機器可以正確執行的命令 彙編 push ax 對應機器語言 0101000 2.彙編原因的產生 組合語言的主體是彙編指令 彙編指令和機器指令的差別在於指令的表示方法。彙編指令是機器指令便與記憶的書寫格式。彙編指令是機器指令的助記符。3.組合語言的組成...