call和ret指令都是转移, 可以修改IP或者同时修改CS和IP, 常被用来实现子程序.
10.1 ret和retf
![image.png](/uploads/projects/xiangyunshu@lnh057/e986a1726a7291af88fd7e871b5b987a.png)
10.2 call指令
10.3 call 标号
![image.png](/uploads/projects/xiangyunshu@lnh057/d3f0e60e5614deaf194b5c5d8b10f19e.png)
相当于
push IP
jmp near ptr 标号
10.4 call far ptr 标号
![image.png](/uploads/projects/xiangyunshu@lnh057/78825a585dd45677e594ab0fdc78fa7f.png)
相当于
10.5 call 16位寄存器
![image.png](/uploads/projects/xiangyunshu@lnh057/6413a284cec837c08de4cd0a0d8d2a20.png)
相当于
10.6 call word(dword) ptr 内存单元地址
![image.png](/uploads/projects/xiangyunshu@lnh057/c960c53849261fa25cb579d0c4f0abac.png)
10.7 call和ret的配合使用
![image.png](/uploads/projects/xiangyunshu@lnh057/5115f90090a4d83d18a2d79736ba1275.png)
![image.png](/uploads/projects/xiangyunshu@lnh057/33bf333e26c24f9721ffb7c52063c7de.png)
相当于s处是一个子函数
10.8 mul指令
![image.png](/uploads/projects/xiangyunshu@lnh057/fd84a4b8ac4aae0935553fe3097886db.png)
10.9 模块化程序设计
10.10 参数和结果传递的问题