幾個匯編指令iret,ret,int


ret指令,(摘自百度百科)

執行過程

ret指令用棧中的數據,修改IP的值,從而實現近轉移。
CPU執行ret指令時,進行下面兩步操作:
(IP)=((SS)*16+(SP))
(SP)=(SP)+2;
另一種用法 ret n (n為整數)
等效於
(IP)=((SS)*16+(SP))
(SP)=(SP)+2;
(SP)=(SP)+n;
例如ret 4
pop ip
add sp,4

返回調用處

例:
push eax
call @msg ; call標號是把eip壓入堆棧,然后再跳到標號@msg處
;[標記1]
; 繼續代碼....
@msg:
push 0
push 0
push eax
push 0
call dword ptr [MessageBoxA]
ret ;這是取出EIP,返回到調用處,繼續執行[標記1]
 
 
iret  interrupt return   中斷返回指令 (也是百度百科)
 
1.恢復 IP(instruction pointer):(IP)←((SP)+1:(SP)),(SP)←(SP)+2
2.恢復 CS(code segment):(CS)←((SP)+1:(SP)),(SP)←(SP)+2
3.恢復中斷前的 PSW(program status word),即恢復中斷前的 標志寄存器的狀態。
(FR)←((SP)+1:(SP)),(SP)←(SP)+2
4.恢復ESP(返回權限發生變化)
5.恢復SS(返回權限發生變化)
 
 
 
int 指令
1) 中斷類型號
2) 標志寄存器入棧,IF=0.TF=1 
3) Cs ,ip入棧
4) IP=(n*4),CS=(n*4+2)
 
 
 
 
 

awatch

指定一個變量,如果這個變量被讀或者被寫,則暫停程序運行,在調試器中顯示信息,並等待下一個調試命令。參考rwatchwatch命令。

backtrace

顯示函數調用得所有棧框架(stack frames)的 蹤跡和當前函數的參數的值,bt是這個命令的簡寫。

break

設置一個斷點,這個命令需要指定代碼行或者函數名作為參數

clear

刪除一個斷點,這個命令需要制定代碼行或者函數名作為參數

continue

調試器停止的地方繼續執行

Ctrl-C

在當前位置停止執行正在執行的程序,斷點在當前行

disable

禁止斷點功能,這個命令需要禁止的斷點在斷點列表索引值作為參數

display

在斷點的停止的地方,顯示指定的表達式的值。(顯示變量)

enable

允許斷點功能,這個命令需要允許的斷點在斷點列表索引值作為參數

finish

繼續執行,知道當前函數返回

ignore

忽略某個斷點制定的次數。例:ignore 4 23忽略斷點423次運行,在第24次的時候中斷

info breakpoints

查看斷點信息

info display

查看設置的需要顯示的表達式的信息

kill

終止當前debug的進程

list

顯示10行代碼。如果沒有提供參數給這個命令,則從當前行開始顯示10行代碼。如果提供了函數名作為參數,則從函數開頭顯示。如果提供代碼行的編號作為參數,這一行作為開頭顯示。

load

動態載入一個可執行文件到調試器。

next

執行下一行的源代碼的所有指令。如果是函數調用,則也當作一行源代碼,執行到此函數返回

nexti

執行下一行的源代碼中的一條匯編指令

print

顯示變量的值

ptype

顯示變量的類型

return

強制從當前函數返回

run

從程序開始的地方執行

rwatch

指定一個變量,如果這個變量被讀,則暫停程序運行,在調試器中顯示信息,並等待下一個調試命令。參考rwatchwatch命令。

set

設置變量的值。例如:set nval=54將把54保存到nval變量中

step

繼續執行程序下一行源代碼的所有指令。如果是調用函數,這個命令將進入函數的內部,單步執行函數中代碼。

stepi

繼續執行程序下一行源代碼中的匯編指令。如果是函數調用,這個命令將進入函數的內部,單步執行函數中的匯編代碼。

txbreak

在當前函數的退出的點上設置一個臨時的斷點(只可使用一次)。

undisplay

刪除一個display設置的變量顯示。這個命令需要將display list中的索引做參數。

watch

指定一個變量,如果這個變量被寫,則暫停程序運行,在調試器中顯示信息,並等待下一個調試命令。參考rwatchwatch命令。

whatis

顯示變量的值和類型。

xbreak

在當前函數的退出的點上設置一個斷點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM