第15章习题解答(二)——《x86汇编语言:从实模式到保护模式》读书笔记41
我们接着上篇博文说。
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
第15章习题解答(二)——《x86汇编语言:从实模式到保护模式》读书笔记41相关推荐
- 第15章习题解答(一)——《x86汇编语言:从实模式到保护模式》读书笔记40
1. 第15章代码修改 先不说习题,说一说我对源码的修改.从运行结果来看,主要是增加了颜色支持.不过把我的代码与配书代码相比较的话,还是有很多不同的.这些修改是怎么来的,可以参考我之前的博文. 运行效 ...
- c语言与单片机技术试卷与答案,哈尔滨工业大学《单片机原理及应用》课件、各章习题解答、试题及答案...
哈尔滨工业大学<单片机原理及应用>课件.各章习题解答.试题及答案等 本光盘依托张毅刚等编著,高等教育出版社出版的高等学校教材<单片机原理及应用>制作的.主要包括电子教案及各种电 ...
- c语言程序设计教程第三版答案9.5,C语言程序设计-第5-9章习题解答.ppt
C语言程序设计-第5-9章习题解答 华中科技大学计算机学院 C语言程序设计 第5-9章 部分习题解答 作业中问题较多的习题 第5章5.4(2) 第6章6.1,6.3,6.5(6),6.8 第7章无 第 ...
- c语言判断正整数位数 请用strengh,C语言程序设计-4、12章习题解答.doc
C语言程序设计-4.12章习题解答 C语言程序设计概述 一个C程序的执行是从 A . A.从main()函数开始,直到main()函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直 ...
- 进入保护模式(二)——《x86汇编语言:从实模式到保护模式》读书笔记14
首先来段题外话:之前我发现我贴出的代码都没有行号,给讲解带来不便.所以从现在起,我要给代码加上行号.我写博客用的这个插入代码的插件,确实不支持自动插入行号.我真的没有找到什么好方法,无奈之下,只能按照 ...
- X86汇编语言从实模式到保护模式15:任务和任务的创建
目录 1. 任务的概念与组成 1.1 任务的概念 1.2 多任务系统 1.3 任务的组成 1.3.1 局部描述符表LDT 1.3.2 任务状态段TSS 2. 任务控制块和TCB链表 2.1 为何需要任 ...
- ASM:《X86汇编语言-从实模式到保护模式》第10章:32位x86处理器的编程架构
★PART1:32位的x86处理器执行方式和架构 1. 寄存器的拓展(IA-32) 从80386开始,处理器内的寄存器从16位拓展到32位,命名其实就是在前面加上e(Extend)就好了,8个通用寄存 ...
- [书]x86汇编语言:从实模式到保护模式 -- 第13章 mbr加载内核、内核加载应用程序
# mbr加载内核 1.0x7c00,16位实模式 2.进入保护模式前的准备工作:创建段描述符(代码段.数据段.堆栈段.显示缓冲区),构建gdt 3.进入保护模式 ; 开启保护模式 ; CR0的第1位 ...
- 任务和特权级保护(五)——《x86汇编语言:从实模式到保护模式》读书笔记36
任务和特权级保护(五)--<x86汇编语言:从实模式到保护模式>读书笔记36 修改后的代码,有需要的朋友可以去下载(c14_new文件夹).下载地址是: GitHub: https://g ...
最新文章
- 安永创新中心落子北京,聚焦5G技术赋能企业数字化转型
- 使用html5 Geolocation显示你的地理位置
- T-SQL问题解决集锦——数据加解密
- 利用matlab对xml文件进行批量处理
- PriorityQueue源码解析
- 过滤器、拦截器、监听器的区别与使用
- CSS3 经典教程系列:CSS3 圆角(border-radius)详解
- kux转换为mp4软件_kux2mp4(优酷kux转换为mp4软件)下载-kux2mp4(优酷kux转换为mp4软件)免费版下载v2021...
- markdown 换行_markdown傻瓜指南(github)
- 如何基于Jupyter notebook搭建Spark集群开发环境
- fork-join详解(2)
- Apache和Tomcat的区别与联系
- 拓端tecdat|r语言聚类分析:k-means和层次聚类
- Qt之切换语言的方法(传统数组法与Qt语言家)
- Matlab中mapminmax函数使用注意事项
- 哈佛幸福课--部分笔记
- 苹果手机注册时显示链接服务器出现问题,苹果手机出现连接到服务器时出现问题是什么回事...
- 统计学分析公式 MA移动平均线
- linux设定u盘启动,cdlinux u盘启动,教您如何设置
- 罗马建立在水渠上:为什么需要优先建设绿色光网?