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類似。接下...