att格式彙編指令 匯程式設計序基本原理知識筆記

2021-10-14 13:51:45 字數 1511 閱讀 9210

1、組合語言的概念

定義:為特定計算機或計算機系統設計的面向機器的符號化程式語言。匯程式設計序也就是用組合語言編寫的程式。計算機要執行匯程式設計序需要用專門的翻譯程式進行翻譯,然後計算機才可以識別。

彙編語句的分類:指令語句、偽指令語句和巨集指令語句

1.1 指令語句

又稱機器 指令語句,翻譯後能夠產生相應的機器**,並且能被cpu直接識別並執行相應的操作。常見的基本指令如add、sub、and等。書寫指令必須遵循指令的格式規範。經過翻譯後會產生相應的機器**。指令語句是在程式執行的時候完成。

1.2 偽指令語句

指示匯程式設計序在翻譯源程式的時候完成某些工作,比如給變數分配儲存單元、給某個符號賦值等。翻譯後不會產生機器**。偽指令語句是在源程式彙編的時候完成。

1.3 巨集指令語句

允許使用者多次重複使用的程式**段稱為巨集。

2、匯程式設計序

2.1 匯程式設計序的作用

可以將所編寫的源程式翻譯成機器指令對程式,匯程式設計序主要工作是將每一條可以執行的彙編語句轉換為相應的機器指令,處理源程式中的偽指令。因為彙編指令中形成的運算元位址的部分可能出現在後面才會有定義的符號,所以匯程式設計序一般要經過兩次掃瞄源程式才能完成翻譯過程。

2.2 第一次掃瞄

第一次掃瞄主要工作是定義符號的值,並建立乙個符號表st,記錄了彙編時所遇到的符號的值。

mot1:固定的機器指令表,記錄了每條機器指令的記憶碼和指令的長度。

掃瞄過程

1、單元計數器lc置初始值0

2、開啟源程式檔案

3、從源程式中讀入第一條語句

4、while(若當前語句不是end語句)

5、關閉源程式檔案

2.3 第二次掃瞄

mot2:機器指令表包含機器指令助記符、機器指令的二進位制操作碼、格式、長度等。

第二次掃瞄產生目標程式。

如下圖:

it技術分享社群

個人部落格**:

文章推薦

程式語言的組成知識筆記

程式語言的概念知識筆記

演算法基礎:遞迴演算法知識筆記

演算法基礎:常用的查詢演算法知識筆記

演算法基礎:常用的排序演算法知識筆記

資料結構基礎:圖結構的學習筆記

資料結構基礎:演算法的基礎知識筆記

資料結構基礎:樹結構的學習筆記

資料結構基礎:棧和佇列學習筆記

att格式彙編指令 關於ATT彙編

att 彙編大體格式是 指令 源運算元 目的運算元 比如將 10 移動到 eax 暫存器的寫法 movl 10,eax 1.att 彙編的源運算元和目的運算元和 intel 正好相反,也就是資料流向是從左到右 2.att 中立即數前需要加 符號,暫存器前加 符號 3.att 的指令加字尾 b w l...

最簡單的AT T匯程式設計序

把這個程式儲存成檔案start.s 匯程式設計序通常以.s作為檔名字尾 用彙編器 assembler as把匯程式設計序中的助記符翻譯成機器指令,生成目標檔案start.o as start.s o start.o 然後用鏈結器 linker,或link editor ld把目標檔案start.o鏈...

常用匯程式設計序轉移指令

1,無條件轉移指令 長轉移 jmp無條件轉移指令 call過程呼叫 ret retf過程返回 2,條件轉移指令 短轉移,128到 127的距離內 當且僅當 sf xor of 1時,op1 ja jnbe不小於或不等於時轉移.意思就是大於則就跳 jae jnb大於或等於轉移.jb jnae小於轉移....