ret,retf和ret指令的区别
- 2020-10-10 17:40:00
- 赵勤松 原创
- 5077
在非保护模式或保护模式的16位下,ret会自动执行以下操作
1.从堆栈中弹出2字节至IP寄存器 2.根据CS:IP跳转到新的地址执行
在保护模式32位模式下,ret会自动执行以下操作
1.从堆栈中弹出4字节至EIP寄存器 2.根据CS:IP跳转到新的地址执行
因此,ret一般被称为段内跳转,而retf则被称为段间跳转。
在非保护模式或保护模式的虚拟86下,retf会自动执行以下操作
1.从堆栈中弹出2字节至IP寄存器 2.从堆栈中弹出2字节至CS寄存器 3.根据CS:IP跳转到新的地址执行
在保护模式32位模式下,retf会自动执行以下操作
1.从堆栈中弹出4字节至EIP寄存器 2.从堆栈中弹出2字节至CS寄存器 3.根据CS:IP跳转到新的地址执行
iret是中断返回命令,在非保护模式和保护模式的虚拟86下,iret会自动执行以下操作
1.从堆栈中弹出2字节至IP寄存器 2.从堆栈中弹出2字节至CS寄存器 3.从堆栈中弹出2字节至FLAG寄存器 4.根据CS:IP跳转到新的地址执行
在保护模式的32位下,如果跳转到相同的保护级别,iret会自动执行以下操作
1.从堆栈中弹出4字节至EIP寄存器 2.从堆栈中弹出2字节至CS寄存器 3.从堆栈中弹出4字节至EFLAG寄存器
在保护模式的32位下,如果跳转到不同的保护级别,iret会自动执行以下操作
1.从堆栈中弹出4字节至EIP寄存器 2.从堆栈中弹出2字节至CS寄存器 3.从堆栈中弹出4字节至EFLAG寄存器 4.从堆栈中弹出4字节至ESP寄存器 5.从堆栈中弹出2字节至SS寄存器
文章分类
联系我们
联系人: | powereye |
---|---|
Email: | zqs@someapp.cn |
QQ: | 1134846 |
微信: | powereye |