Blogs Home


Never too old to learn
  • x86汇编语言学习:第十五章 任务切换

    概述 操作系统负责什么时候切换到另一个任务,以及切换到哪一个任务执行; 处理器只负责具体的切换过程,包括保护前一个任务的现场。操作系统只执行了一个call/jmp/iret的指令,但是处理就完成了任务的切换。 协同式任务切换方式 从一个任务切换到另一个任务,需要当前任务主动地请求暂时放弃执行权,或者在通过调用门请求操作系统服务时,由操作系统“乘机”将控制转移到另一个任务。 抢占式任务切换方式 在这种方式下,可以安装一个定时器中断,并在中断服务程序中实施任务切换。硬件中断信号总会定时出现,不管处理器当时在做什么,中断都会适时发生,而任务切换也就能够顺利进行。 [Read More]
  • x86汇编语言学习:第十四章 任务和特权级保护

    本章目标 通过演示如何创建一个任务,并使之投入运行来学习任务的概念及组成要素,包括任务的全局空间和局部空间、TSS、LDT、特权级等。 必须了解特权级不是指任务的特权级,而是组成任务的各个部分的特权级。比如:任务的全局部分一般是0、1和2特权级别的,任务的私有部分一般是3特权级别的。 必须清楚CPL、DPL和RPL的含义,以及不同特权级别之间的控制转移规则。 熟悉调用门的用法。 掌握一些在Bochs下调试程序的新手段。 学习一些新的x86处理器命令,包括lldt、ltr、pushf/pushfd、popf/popfd、ret n/retf n、arpl等。同时了解像jmp和call这样的传统指令是如何被赋予一些新的功能的。 [Read More]
  • x86汇编语言学习:第十三章 程序的动态加载和执行

    本章目标 了解保护模式是为操作系统提供的技术,并没有给普通应用程序的编程带来负担。 学习操作系统在保护模式下加载和重定位应用程序的一般原理,学习简单的内存动态分配,了解应用程序接口API的简单原理,学习字符串的比较算法。 学习若干x86处理器的新指令,包括bswap,cpuid,cmovcc,sgdt,movzx,movsx,cmpsb,cmpsw,cmpsd和xlat等。 [Read More]
  • x86汇编语言学习:第十一章 进入保护模式

    本章目标: 了解x86处理器的保护模式需要先定义全局描述符表GDT,认识段描述符的各个组成部分以及它们的含义和作用。 认识32位处理器的全局描述符表寄存器GDTR、段寄存器(由段选择器和描述符高速缓存器组成)、控制器CR0和段选择子。 了解进入32位保护模式的方法和步骤。 学习保护模式下的一些程序调试技术,如查看全局描述符表GDT、段寄存器和控制寄存器等。 学习lgdt指令 [Read More]