call
和ret
指令都是轉移指令,它們都修改cs和ip。經常被共同用於實現子程式的設計。這一章,我們講解call
和ret
指令的原理
retf
指令用棧中的資料,修改cs和ip的內容,從而實現遠轉移
cpu執行call
指令時,進行兩步操作:
call
指令不能實現短轉移,除此之外,call與jmp類似。
接下來以轉移位址的不同方式為主線,詳解call指令
相當於
push ip
jmp near ptr 標號
相當於
push cs
push ip
jmp far ptr 標號
注意先丟cs
,再丟ip
相當於
push ip
jmp 16位reg
call dword ptr 記憶體單元位址
mul 是乘法指令
必須都是8位,或是16位
子程式開始:子程式中使用的暫存器入棧
子程式的內容
子程式中使用的暫存器出棧
返回(ret,retf)
第十章 call和ret指令
目錄mul指令 課後檢測點 這章主要學習call和ret兩個指令,前者的作用相當於現在高階語言的方法呼叫,後者相當於高階語言的方法返回 call指令分為了根據偏移量轉移和根據目的地轉移兩種格式 call 16位暫存器 call 標號 call word ptr 記憶體單元位址 call far pt...
《組合語言》第十章 CALL和RET指令
第10章 call和ret指令 ret指令用棧中的資料,修改ip的內容,從而實現近轉移。retf指令用棧中的資料,修改cs和ip內容,從而實現遠轉移。cpu執行ret指令時,進行下面兩步操作 ip ss 16 sp sp sp 2 這是將棧頂的資料存入ip,然後將該資料進行出棧操作。cpu執行ret...
組合語言第十章call和ret指令
ret 指令用棧中的資料,替換掉ip裡的內容,從而實現近轉移。retf 指令則是修改cs和ip的內容實現遠轉移 return far ret指令 ip ss 16 sp sp sp 2 retf指令 ip ss 16 sp call指令兩個步驟 將當前的ip或ip和cs壓入棧中 sp sp 2 ss...