彙編學習入門

2022-08-11 00:21:24 字數 1466 閱讀 6006

–ax--累加器,使用頻度最高,用於算術、邏輯運算以及與外設傳送資訊等;

–bx--基址暫存器,常用做存放儲存器位址;

–cx--計數器,作為迴圈和串操作等指令中的隱含計數器;

–dx--資料暫存器,常用來存放雙字長資料的高16位,或存放外設埠位址。

(si,di,sp,bp,只能按16位進行訪問操作)

–變址暫存器常用於儲存器定址時提供位址

–si(source index)是源變址暫存器

–di (destination index)是目的變址暫存器

–指標暫存器用於定址記憶體堆疊內的資料

–sp為堆疊指標暫存器,指示棧頂的偏移位址,sp不能再用於其他目的,具有專用目的

–bp為基址指標暫存器,表示資料在段中的基位址

–cs(**段)指明**段的起始位址,用來存放程式的指令序列,**段暫存器cs存放**段的段位址,

指令指標暫存器ip指示下條指令的偏移位址

處理器利用cs:ip取得下一條要執行的指令

–ss(堆疊段)指明堆疊段的起始位址,堆疊段確定堆疊所在的主存區域,

堆疊段暫存器ss存放堆疊段的段位址,

堆疊指標暫存器sp指示堆疊棧頂的偏移位址

處理器利用ss:sp操作堆疊棧頂的資料

–ds(資料段)指明資料段的起始位址,資料段存放執行程式所用的資料,

資料段暫存器ds存放資料段的段位址,

各種主存定址方式(有效位址ea)得到儲存器中運算元的偏移位址

處理器利用ds:ea訪問資料段中的資料

各種主存定址方式(有效位址ea)得到儲存器中運算元的偏移位址

處理器利用es:ea訪問附加段中的資料,串操作指令將附加段作為其目的運算元的存放區域

–fr(標誌暫存器),標誌(flag)用於反映指令執行結果或控制指令執行形式,

8086處理器的各種標誌形成了乙個16位的標誌暫存器fr(標誌暫存器的內容稱為程式狀態字psw)

–狀態標誌--用來記錄程式執行結果的狀態資訊,許多指令的執行都將相應地設定它。

–cf  zf  sf  pf  of  af

–控制標誌--可由程式根據需要用指令設定,用於控制處理器執行指令的方式

pf標誌僅反映最低8位中「1」的個數是偶或奇,即使是進行16位字操作

1.立即定址

運算元在指令中,緊跟在操作碼之後,這樣的運算元成為立即數,可以是8位或者16位。

例如:mov ax,1234h

2.暫存器定址

3.直接定址

4.暫存器間接定址

5.基址定址

6.變址定址

7.基址變址定址

未完待續~

彙編學習1 初步入門

寫慣了高階語言,很容易忘了計算機執行指令的本質。如果不深入了解計算機的執行過程,無法想象乙個最簡單的c檔案被執行起來中間涉及到多少繁瑣的工作。為了更深入的了解相關的知識 linker,loader 先把最基礎的彙編複習一下 以前彙編學的很不好 彙編可以很直接的操作機器,不需要其他庫檔案,通過這種裸指...

彙編快速入門

譯文出自 掘金翻譯計畫 譯者 zhouzihanntu 校對者 tina92 zhaochuanxing 本文是 webassembly 系列文章的第三部分。如果你還沒有閱讀過前面的文章,我們建議你 從頭開始。理解彙編和編譯器如何生成它的有助於你後續理解 webassembly 的工作原理,在介紹 ...

aarch64彙編入門學習 1

藍芽耳機沒電,公司事務較為清閒,再不能看教程的情況下,計畫看下arm64的彙編 可以先寫乙個簡單的helloworld程式試驗一下。如果直接使用c語言,呼叫printf函式,勢必會鏈結c庫,那麼反彙編 將會比較複雜,不利於入門,於是計畫,是否可以直接使用組合語言,來寫個最簡單的程式,輸出hellow...