- 1.ret : 用栈中的数据,修改IP内容,从而实现近转移
- 2.retf : 用栈中的数据,修改CS和IP中的内容,从而实现远转移
3.CPU执行ret指令相当于:pop IP; 执行retf指令相当于: pop IP pop CS
- 4.call指令: CPU执行call指令时,进行两步操作: ①.将当前的IP或CS和IP压入栈中
- ②.转移
- 5.call指令不能实现短转移,除此之外,call指令实现转移的方法和jmp指令的原理相同.
- 6."call 标号" : 进行如下操作: ①.(sp)=(sp)-2 ((ss)*16+(sp))=IP
- ②.(IP)=(IP)+16位移
- CPU执行"call 标号"指令相当于:push IP; jmp near ptr bh
- 7."call far ptr 标号"实现的是段间转移,进行的操作为:①.(sp)=(sp)-2
- ②.((ss)*16+(sp))=(CS)
- ③.(sp)=(sp)-2
- ④.((ss)*16+(sp))=(IP)
- CPU执行"call far ptr 标号"时,相当于进行,push CS, push IP, jmp far ptr 标号
8.call 16位 寄存器:push IP ;jmp 16位寄存器
9.call word ptr 内存单元地址 : push IP ; jmp word ptr 内存单元地址
10.call dword ptr 内存单元地址 : push CS ,push IP ; jmp dword ptr 内存单元地址
11.mul 乘法指令 : ①.两个相乘的数:两个相乘的数,要么都是8位,要么都是16位,如果是8位,一个默认放在AL中,另一个放在8位寄存器或内存字节单元中:如果是16位,一个默认在AX中,另一个放在16位寄存器或内存单元中
②.如果是8位乘法,结果默认放在AX中;如果是16位乘法,结果高位默认中DX中存放,低位在AX中放.