組合語言第十章call和ret指令

2021-10-03 19:14:22 字數 903 閱讀 6052

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)*16 + (sp))=(ip)

②轉移到標號處

(ip)=(ip)+16位位移(16位位移是「call 標號」在實體地址的值)

call 相當於 push ip ; jmp near ptr 標號

call far ptr 標號

①(sp)=(sp)-2

((ss)*16 + (sp))=(cs)

(sp)=(sp)-2

((ss)*16 + (sp))=(ip)

②(cs)標號所在的段位址 (ip)標號所在的偏移位址

call word ptr 標號(16位) call dword ptr 標號(32位)

call dword ptr 標號 相當於

push cs

push ip

jmp dword ptr 記憶體單元位址

mul 記憶體單元(或reg) 乘法指令只能相同位的才能通過運算。

如果8位乘法結果預設放在ax中,16位預設放在dx中;給出的記憶體單元的值和ax中的值相乘。

《組合語言》第十章 CALL和RET指令

第10章 call和ret指令 ret指令用棧中的資料,修改ip的內容,從而實現近轉移。retf指令用棧中的資料,修改cs和ip內容,從而實現遠轉移。cpu執行ret指令時,進行下面兩步操作 ip ss 16 sp sp sp 2 這是將棧頂的資料存入ip,然後將該資料進行出棧操作。cpu執行ret...

第十章 call和ret指令

目錄mul指令 課後檢測點 這章主要學習call和ret兩個指令,前者的作用相當於現在高階語言的方法呼叫,後者相當於高階語言的方法返回 call指令分為了根據偏移量轉移和根據目的地轉移兩種格式 call 16位暫存器 call 標號 call word ptr 記憶體單元位址 call far pt...

彙編學習筆記 第十章 CALL和RET指令

call和ret指令都是轉移指令,它們都修改cs和ip。經常被共同用於實現子程式的設計。這一章,我們講解call和ret指令的原理 retf指令用棧中的資料,修改cs和ip的內容,從而實現遠轉移 cpu執行call指令時,進行兩步操作 call指令不能實現短轉移,除此之外,call與jmp類似。接下...