這2個指令也是轉移指令,一塊兒用的時候有特效~~~~函數
10.1 ret and retfoop
ret 至關於pop ip 把棧頂的字彈出到ipcode
retf至關於先執行pop ip and pop csip
10.2 call內存
執行2步it
1 先把IP或cs和ip推入棧中class
2 轉移到 標號或內存處im
10.3 call 標號call
call 標號word
轉移範圍爲-32768-32767
16位轉移
至關於執行 push ip jmp near ptr 標號
10.4 call far ptr 標號
至關於
push cs
push ip
jmp far ptr 標號
10.5 call ax
push ip
jmp ax
10.6 call word ptr 內存單元
至關於push ip
jmp word ptr 內存單元
call dword ptr 內存單元
至關於push cs
push ip
jmp dword ptr 內存單元地址
高位放cs,低位放ip
10.7 ret and call 配合
assume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456h
data ends
stack segment
dw 0,0
stack ends
code segment
start:mov ax,1
mov cx,3
call s
mov ax,bx
s:add ax,ax
loop s
ret
mov ax,4c00
int 21
code ends
end start
這裏就實現了先從s 標號執行完再執行下面的mov ax,bx的過程。能夠類比高級語言的函數把。就好像函數定義在下面,執行卻能夠在上面,本身想的,不知道對不對
====================================================================
有點困,明天寫剩下的~~~~~~