注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

编程学习

我的网上家园

 
 
 

日志

 
 

15章部分知识点  

2013-04-24 13:32:45|  分类: 《x86汇编语言: |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
TSS 描述符: TSS选择子       TYPE: 10B1
任务门描述符: 任务门选择子 TYPE: 0101

任务门描述符可以安装在中断描述符表中,也可以安装在全局描述符表(GDT)或者局部描述符表
(LDT)中.


使用call指令发起的任务切换,类似于因中断发起的任务切换. 这就是说,由call指令发起的任务
切换是嵌套的,当前任务(旧任务)TSS描述符的B位保持原来的"1"不变,EFLAGS寄存器的NT位也不发
生变化;新任务TSS描述符的B位置"1",EFLAGS寄存器的NT位也置"1",表示此任务嵌套于其他任务中,
同时,TSS任务链接域的内容改为旧任务的TSS描述符选择子.



任务2的EFLAGS的NT位为1(表示嵌套于其它任务),任务2使用 jmp 指令发起任务切换,任务2的
TSS描述符B位置0,切换到任务3,假设任务3 TSS中EFLAGS寄存器的NT位为0,任务3无法通过iretd
返回到任务2.


在16位模式下,不能使用 sp 作为基址.
保护模式下,使用ESP寄存器作为指令的地址操作数时,默认使用的段寄存器是SS,即访问栈段.

32位模式下, iret 和 iretd 是相同的.
16位模式下,iretd 编译后的机器码为 66 CF


从高特权级转移到低特权级的另一种方法: 任务切换(任务门).


CALL TSS选择子 与 CALL 任务门选择子 效果是一样的.
  评论这张
 
阅读(21)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017