1. 程式人生 > >組合語言--基礎篇

組合語言--基礎篇

一、基本概念

概    念:是由助記符符號地址標號等書寫程式的語言。

目    的:組合語言源程式通過加工翻譯(又叫做彙編)轉換成機器語言。

實    質: 彙編程式是一種系統軟體。IBMPC系統配置了兩種彙編程式:ASM小彙編 、MASM巨集彙編(主流)。

二、基本語法

1.字符集 

2.識別符號 (首字母不能是數字,可以是字母問號@和下劃線 )

3.保留字 (不能當做識別符號使用)

4.語句   (指令語句和偽指令語句

  • 指令語句->產生目的碼。 [標號:]  [字首] 指令助記符 [運算元] [;註釋]
    • 標號:代表指令語句儲存器地址.
    • 字首:80x86特殊指令。必須與其他語句配合使用,例如段跨越字首、重複字首、匯流排封鎖字首以及操縱尺寸和定址尺寸等,經過彙編後產生特殊字首.
    • 指令助記符:80x86指令名稱代表符號。指令操作型別。用於巨集定義語句定義巨集指令名.
    • 運算元:指令要處理的資料。可以是一個或者兩個也可以沒有,若有兩個運算元前面的是目標運算元後面為源運算元,兩者用都逗號隔開 .
    • 註釋:是指令功能說明。以“ ; ”開始的字串.
  • 偽指令語句->提供編譯資訊並指示程式某些操作語句,不產生目的碼。 [名字] 偽操作命令 [運算元] [;註釋]
    • 名字:偽指令語句中的名子後面不能有“ ; ”語句中名子字可以是符號名、常量名、變數名、過程名、和段名等.
    • 偽操作命令:主要包括符號定義、變數定義、程式分段定義、過程定義、模組定義、巨集定義以及後來擴充段簡化定義和記憶體模式定義等命令.
    • 運算元:與指令語句有類似作用.
    • 註釋:與指令語句有類似作用.

三、程式結構

分為四種類型的段:程式碼段、資料段、堆疊段和附加段 。(每個段在程式中的順序沒有先後,段的數目也不受限制,必須有段名 )

例1:單模組組合語言程式結構

DATA SEGMENT               ;定義資料段

<資料定義偽指令序列>   

DATA ENDS DATA SEGMENT STACK  ;定義堆疊段

<資料定義偽指令序列>

STACK ENDS CODE SEGMENT      ;定義程式碼段

<程式段>

CODE ENDS

END 標號

注意:綜合上述,用匯編語言編寫的考程式,在結構上具有以下特點。

①由若干邏輯段組成,各邏輯段包含偽指令語句定義和說明。

②整個源程式以偽指令END結束。

③每個邏輯段由語句序列組成,各語句可以是指令語句、偽指令語句、巨集指令語句、註釋語句或空行。

四、處理過程

源程式—彙編程式−組合語言原始檔−機器語言目標檔案−執行檔案−結果

          ↓ 行彙編(組合語言源程式逐行彙編,常見的IBM PC 動態除錯DEBUG  中的A命令)

          ↓ 巨集彙編(作為主流步驟1.建立源程式2.產生目標程式3.連結目標程式4.執行除錯)