組合語言--基礎篇
阿新 • • 發佈:2018-11-03
一、基本概念
概 念:是由助記符、符號地址、標號等書寫程式的語言。
目 的:組合語言源程式通過加工翻譯(又叫做彙編)轉換成機器語言。
實 質: 彙編程式是一種系統軟體。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.執行除錯)