保护模式下的编程<六>---任务切换

原创 2004年05月25日 10:21:00

任务切换<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

这这节,我将讲解怎样实现任务之间的转换。下面这段代码有三个任务,分别是临时任务,任务A,任务B。任务之间的转换需要使用任务门attaskgate,任务门是门的一种,任务门的的选择子必须是指向GDT中的任务状态段TSS描述符。任务的入口保存在TSS中。利用段间转移指令JMP和段间调用指令CALL,任务门可以实现任务切换。

例如任务门tob     descriptor    <0,tssb_sel,0,attaskgat+dpl2,0>任务的入口是任务状态段tssbseg的描述符tssb_sel.

       每个任务都有自己的任务段TSS,当任务实现转换的时候。当前任务的寄存器值和其他相关信息都会保存到自己对应的任务段中,然后从将要运行的任务的任务段中读出数据,用来初始化寄存器。所以你将会在代码中看到mov       ax,tss0_selltr ax这两条语句。这两个指令是把临时任务的寄存器等相关信息保存到tss0seg中,jump       tssa_sel,0这个指令实现了任务切换。当计算机运行这个指令,计算机会从任务段tssaseg中读取数据,然后放置对应的寄存器中。这样就实现了从临时任务到任务A的切换了。

       当指令运行到jump       tob_sel,0,任务门内的选择子tssb_sel指示任务BTSS,并且此时的任务BTSS是可用的,所以可以顺利进行任务切换。任务A的现场保存到任务ATSS段,任务B的现场保存从任务BTSS恢复。

       最后任务B通过调用门torealm返回到临时任务,然后切换到实模式。

      具体的代码请看http://ywchen2000.51.net/NEW.HTM

 

      

 

 

 

 最后感谢CSDN汇编板块的csdsjkk() 指点.

 参考资料:杨季文主编的<<80X86汇编语言程序设计教材>>

 

保护模式小结(三)——任务切换

保护模式总结(三)——任务切换        上一篇总结回顾了任务在计算机中的实现形式,现在接着来讲任务的切换。        任务切换在处理器中并没有特殊的指令,而是借用老指令。有两种方法: ...
  • bfboys
  • bfboys
  • 2016年09月03日 11:57
  • 192

任务切换——《x86汇编语言:从实模式到保护模式》读书笔记38

第15章代码讲解。
  • u013490896
  • u013490896
  • 2016年06月29日 23:24
  • 1168

关于从保护模式切换到实模式的相关说明

关于为什么不能从32位的保护模式直接跳转到实模式,而要先跳转到16位的保护模式,再从16位的保护模式跳转到实模式的理解 ;****************注意在此用normal选择子对段寄存器进行...
  • lingqi1818
  • lingqi1818
  • 2014年06月16日 09:50
  • 476

任务和特权级保护(二)——《x86汇编语言:从实模式到保护模式》读书笔记32

之前做了那么多铺垫,我们终于可以看看第14章的代码了。 对于引导代码和用户程序,依然采用第13章的;对于内核程序(c14_core.asm),编译的时候有几行报错了,只要加上dword即可解决。...
  • u013490896
  • u013490896
  • 2016年05月21日 20:52
  • 4098

[Intel汇编-NASM]进入保护模式全过程

org 0x7C00 ; 该命令表示程序将被装在到偏移地址为0x7C00的地方 ; 该命令效果是全局的,但只...
  • Lirx_Tech
  • Lirx_Tech
  • 2015年01月26日 16:57
  • 1506

保护模式总结(三)——任务切换

上一篇总结回顾了任务在计算机中的实现形式,现在接着来讲任务的切换。        任务切换在处理器中并没有特殊的指令,而是借用老指令。有两种方法:        第一种方法:借助中断方式。说到...
  • u011879578
  • u011879578
  • 2014年04月17日 22:09
  • 774

保护模式总结(三)——任务切换

上一篇总结回顾了任务在计算机中的实现形式,现在接着来讲任务的切换。 任务切换在处理器中并没有特殊的指令,而是借用老指令。有两种方法: 第一种方法:借助中断方式。说到中断方式就必须要引入一个概念,中断描...
  • u013197275
  • u013197275
  • 2014年04月24日 18:37
  • 690

(实模式+保护模式)模式切换的过程步骤(代码+文字解析)

【0】写在前面文末的个人总结是干货,前面代码仅供参考的,且source code from orange’s implemention of a os. ; ================...
  • PacosonSWJTU
  • PacosonSWJTU
  • 2015年08月26日 20:03
  • 1521

保护模式及其编程——任务管理

摘要:任务是处理器可以分配、调度、执行和挂起的一个工作单元。用于可执行程序、任务或者进程、操作系统服务、中断或者异常处理过程和内核代码。通过中断、异常、跳转或者调用我们可以执行一个任务。任务描述符表中...
  • trochiluses
  • trochiluses
  • 2014年02月23日 21:01
  • 1467

保护模式及其编程——任务管理

摘要:任务是处理器可以分配、调度、执行和挂起的一个工作单元。用于可执行程序、任务或者进程、操作系统服务、中断或者异常处理过程和内核代码。通过中断、异常、跳转或者调用我们可以执行一个任务。任务描述符表中...
  • bfboys
  • bfboys
  • 2016年09月02日 10:07
  • 165
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:保护模式下的编程<六>---任务切换
举报原因:
原因补充:

(最多只允许输入30个字)