3. 段暫存器
4. 指令指標暫存器
二、實位址下的儲存器定址方式
三、堆疊儲存技術
四、程式彙編連線與除錯方法
在微機原理與接**術課程中,我學的是16位的彙編,現在總結一下32位的彙編。不過這兩者是一脈相承的,因此會有很多相同的地方。
算術邏輯運算後的結果特徵:
16
位:
附加段暫存器es、fs和gs
:存放程式的資料段的起始位址,為程式設計使用多個資料段帶來方便
指令指標ip/eip
指出程式執行過程中當前要取出的下條指令的位址。當取出一條指令後,ip/eip
自動加上該指令的長度或者形成轉移位址,又指向下一條指令的位址,從而可以控制有序的執行程式。
分段定址允許乙個程式可以使用多個**段、資料段和堆疊段,儲存段內的每個單元的實體地址(pa),可以用「段基址:段內偏移位址」來表達。
實體地址的計算與形成:
堆疊是由程式在ram中開闢的一片記憶體區域,具有主儲存器的功能和特性。
設定堆疊段暫存器ss
,用來指示堆疊起始位置的指標;棧頂暫存器sp
用來指示堆疊頂部到堆疊起始位置的距離,即棧頂指標。
棧頂是乙個動態的概念,用sp
來記錄堆疊操作時的變化,它動態地指向當前可以壓入資訊到堆疊中的偏移位址,或者從堆疊中當前需要彈出資訊的偏移位址。
「後進先出」或「先進後出」:
堆疊操作指令(push、pop
)均是對16
位(2
個位元組)的資料進行操作。
示例:設ax=4130h,bx=2010h
,堆疊的初始棧頂sp=100h
,分析執行下列指令序列後,sp=?
push ax
push bx
若再執行
pop bx
pop cx
則cx=? sp=?
分析過程如下圖所示,顯然執行push bx
後,sp = 0fch
,執行pop cx
後,cx = 4130h
,sp = 100h
。堆疊訪問操作過程示意圖
整個流程如下:
利用熟悉的文字編輯軟體,對組合語言源程式進行編輯,生成.asm
檔案。組合語言使用過程中,生成不同檔案字尾名的含義:
必須的程式為:
彙編過程:對源程式掃瞄後生成目標檔案.obj
,如有語法錯誤,則顯示相應的錯誤資訊,返回修改源程式。
彙編示例:
d:\masm6> masm p1.asm
連線:
\masm6> link p1
生成執行檔案p1.exe
則可直接執行:
d:\masm6> p1
彙編過程中可以檢查程式的語法錯誤。彙編無誤,生成可執行檔案後,執行沒有達到預期的結果,程式可能存在邏輯錯誤。需要用除錯工具進行跟蹤除錯,查詢程式的邏輯錯誤。
常用除錯工具程式:debug.exe
提供了乙個監控程式環境,通過提供命令和相關引數了解程式執行過程中各暫存器和儲存單元的值及其變化情況,幫助確定程式中的問題。
組合語言學習筆記2
組合語言學習筆記2 暫存器 乙個cpu是由運算器,控制器,暫存器等期間組成,這些器件是有內部匯流排連線的。運算器進行運算 資訊處理 暫存器進行資訊儲存的,控制器進行控制各種期間的工作。程式設計師對cpu的控制就是通過指令改變暫存器中的儲存資訊進行間接地控制cpu的。當然不同的cpu,暫存器的結構個數...
組合語言學習筆記(2)
1 彙編指令 機器碼的助記符,有對應的機器碼 2 偽指令 沒有對應的機器碼,由編譯器執行,計算機並不執行 3 其他符號 由編譯器識別,沒有對應的機器碼 指令和資料是應用上的概念。在記憶體或磁碟上,指令和資料沒有任何區別,都是二進位制資訊。cpu要想進行資料讀寫,必須和外部器件進行下面三類資訊互動 匯...
組合語言學習筆記
學習參考資料 大灰狼 講彙編 資料匯流排,位址匯流排,控制匯流排。位址匯流排有多少條就決定了cpu最大的記憶體使用量。80386有32位位址匯流排,所以它的定址能力就是4g.暫存器 通用暫存器,段暫存器,ax暫存器 通用暫存器,存放資料。高位位元組ah,低位位元組al。實體地址表示方法 位址加法器,...