调用门实战(1)----调用门跳转

 

"门",英文原名Gate,门是一种描述符,该描述符的结构如下图:

直观来看,一个门描述了由一个选择子和一个偏移所指定的线性地址,程序正是通过这个地址进行转移的。门描述符分为4种:

调用门(Call gates)

中断门(Interrupt gates)

陷阱门(Trap gates)

任务门(Task gates)

 

这个例子中,我们用到调用门。简单起见,不涉及任何特权级转变。

 

使用调用门的具体步骤如下:

1、增加通过调用门转移的目标代码段,由于我们要用call指令使用调用门,所以在代码结尾处加了retf

 

 

2、加入上面代码段的选择子和描述符,并且初始化这个描述符

 

 

3、添加调用门和调用门选择子

 

 

4、使用调用门

 

 

代码pm.inc添加了门描述符,如下:

 

 

 

代码pmtest.asm 如下:

 

 

 

在DOSBOX显示结果如下图:

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值