您的位置:首页 > 其它

第15章习题解答(二)——《x86汇编语言:从实模式到保护模式》读书笔记41

2016-07-17 11:36 141 查看
我们接着上篇博文说。

2.2 第二题题目

修改本章的源程序,使之能够顺序完成以下工作:

(1)从程序管理器任务切换到任务A,显示一条消息;

(2)再从任务A转换到任务B,显示一条消息;

(3)从B直接返回到程序管理任务。

2.3 分析

(1)很容易,(2)如何实现?我的思路是在任务A的符号表中安装B的任务门。

程序运行的具体流程如下:

内核的符号表中要增加一个条目,用来接收B任务门描述符的选择子

A任务的符号表中也要有B任务的任务门条目(留待内核重定位);

内核加载任务B,在内核符号表中安装B的任务门描述符的选择子;

内核加载任务A,加载的时候,自然会对A的符号表进行重定位,这样就把B任务的任务门选择子写到了A的符号表中;

从内核切换到任务A;

任务A通过B的任务门(已经在符号表中)切换到任务B;

任务B返回到内核。

2.4 对内核代码的修改

在内核符号表中增加一个条目。



安装调用门的时候,一定要除去最后的任务门。



加载任务B,安装B的任务门描述符,并且填写选择子到符号表。



内核加载任务A,通过
JMP
指令切换过去。



2.4 对用户程序1的修改

在A的符号表中增加一个条目。



以上截图,只截取了比较重要的部分,其他地方的修改,还请读者下载我的完整代码。

2.5 运行结果



代码下载地址:

http://download.csdn.net/detail/u013490896/9578192
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: