組合語言 王爽 學習筆記

2021-05-21 22:02:45 字數 699 閱讀 4042

1、mov a, b

a、b不能同時為一記憶體位址!

2、bx、bp、si、di

在[....]中,這4個暫存器可以單個出現,或只能以4種組合出現:bx和si、bx和di、bp和si、bp和di。

如組合[bx + si + idata]就是合法的。

另外,順便說明一點,si、di不能分成兩個8位暫存器使用。

3、div指令

div的格式:

div reg

div 記憶體單元

除數為8位時,被除數預設放在ax中,指令執行後,al儲存操作的商,ah儲存操作的餘數;

除數為16位時,被除數預設放在ax和dx中,指令執行後,ax儲存操作的商,dx儲存操作的餘數。

4、段的型別

cpu到底如何處理我們定義的段中的內容,是當作指令執行,當作資料訪問,還是當作棧空間,完全是靠程式中具體的彙編指令,和彙編指令對cs:ip、ss:sp、ds等暫存器的設定來決定的。

5、push、pop

這兩個指令操作都是以字為單位的!

6、暫存器的特殊點

8086上有14個暫存器:ax、bx、cx、dx、si、di、bp、sp、ip、cs、ds、es、ss、flag;

cx儲存loop指令中的迴圈次數,cx為0時,loop迴圈跳出;

bx可作為記憶體偏移的暫存器,具體見上面2;

ax、dx用在div指令操作中,具體見上面3;

組合語言 王爽 筆記

關於pop的知識 1.出棧後,ss sp指向新的棧頂,pop操作前的棧頂元素中的資料仍然存在,但是,它已不再棧中 2.ss和sp只記錄了棧頂的位址,依靠ss和sp可以保證在入棧和出棧時找到棧頂 3.當棧滿的時候再次使用push指令入棧,棧空的時候再次使用pop指令出棧,都將發生棧頂越界問題,它是非常...

組合語言 王爽 筆記

1.乙個組合語言程式從寫出到最終執行的簡要過程 編寫,編譯連線,執行 2.可執行檔案中包含兩部分內容 一是程式 從源程式中的彙編指令翻譯過來的機器碼 和資料 源程式中定義的資料 二是相關的描述資訊 eg 程式的大小,要佔的記憶體空間等 3.彙編指令是指有對應的機器碼的指令,可以被編譯為機器指令,最終...

組合語言 王爽 筆記

1.dos是乙個單任務作業系統,乙個程式a再可執行檔案中,必須要有另乙個正在執行的程式b,將a從可執行檔案中加載入記憶體中,將cpu的控制權交與a,a才能執行,a開始執行後,b停止執行,當a執行完畢後,將cpu控制權再交於b,b再繼續執行 2.程式返回 乙個程式結束後,將cpu的控制權交還給使它得以...