这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的过程。能够类比高级语言的函数把。就好像函数定义在下面,执行却能够在上面,本身想的,不知道对不对
====================================================================
有点困,明天写剩下的~~~~~~