汇编--9 call指令和ret指令

来源:互联网 发布:网络侵犯名誉权 编辑:程序博客网 时间:2024/04/28 18:36

9.1ret和retf
cpu执行ret指令时,相当于进行
pop IP
cpu执行retf指令时,相当于进行
pop IP
pop CS

9.2call指令
将当前ip 或cp、ip压入栈后进行转移

9.3根据位移进行转移的call指令
call 标号
相当于 push IP
jmp near ptr 标号

9.4 转移目的地址在指令中的call指令
call far ptr 标号
相当于push cs
push ip
jmp far ptr 标号

9.5转移地址在寄存器中的call指令
call 16位寄存器reg
push ip
jmp 16位寄存器

9.6转移地址在内存中的call指令
call word ptr 内存单元地址
相当于 push IP
jmp word ptr 内存单元地址

call dword ptr 内存单元地址
相当于 push cs
push ip
jmp dword ptr 内存单元地址

9.7call和ret的配合使用(子程序)

cude:mov ax,bx
mul bx
mul bx
ret
在中程序中调用call cude转到子函数出这时本来要执行的下一条指令ip入栈,在ret执行后,原来的ip值出栈传送给ip寄存器,程序继续向下执行,这就是子程序的原理。

9.8mul指令
mul是乘法指令:两个相乘的数
(1)两个相乘的数字,要么都是8位,要么都是16位。如果是8位,则默认放在AL中,另一个放在8位reg或内存字节单元中;如果是16位,一个默认在AX,另一个放在16位reg或内存字单元中。

9.9批量传送数据
要传递大量参数时,可以先将参数入栈。

0 0