6.5 Combining Page and Segment Protection 组合页与段保护 When paging is enabled, the 80386 first evaluates segment protection, then evaluates page protection. If the processor detects a protection violation at either the segment or the page level, the reque…
5.3 Combining Segment and Page Translation  联合使用段与分页转换 Figure 5-12 combines Figure 5-2 and Figure 5-9 to summarize both phases of the transformation from a logical address to a physical address when paging is enabled. By appropriate choice of options…
Intel 80386 Reference Programmer's Manual 80386程序员参考手册 Chapter 1 -- Introduction to the 80386 第1章 - 80386的介绍 The 80386 is an advanced 32-bit microprocessor optimized for multitasking operating systems and designed for applications needing very high p…
2.1 Memory Organization and Segmentation 内存组织和分段 The physical memory of an 80386 system is organized as a sequence of 8-bit bytes. Each byte is assigned a unique address that ranges from zero to a maximum of 2^(32) -1 (4 gigabytes). 80386系统的物理内存被看做8位…
5.1 Segment Translation 段转换 Figure 5-2 shows in more detail how the processor converts a logical address into a linear address. 图5-2展示了处理器将一个逻辑地址转换为线性地址的细节. To perform this translation, the processor uses the following data structures: 处理器使用以下数据结构实现转…
4.1 Systems Registers 系统寄存器 The registers designed for use by systems programmers fall into these classes: 为系统程序设计的寄存器分为如下几类: EFLAGS 标志寄存器FLAGS Memory-Management Registers 内存管理寄存器 Control Registers 控制寄存器 Debug Registers 调试寄存器 Test Registers 测试寄存器 4.1…
注:觉得本章内容与理解操作系统不直接相关,所以本章并未看完,也就没有翻译完,放在这里中是为了保证手册的完整.有兴趣的人可以去原址查看. https://pdos.csail.mit.edu/6.828/2016/readings/i386/c03.htm Chapter 3 Applications Instruction Set 程序指令集 This chapter presents an overview of the instructions which programmers can u…
从上一次学习MIT的操作系统课程又过去了一年.上次学习并没有坚持下去.想来虽有种种原因,其还在自身无法坚持罢了.故此次再鼓起勇气重新学习,发现课程都已由2014改版为2016了.但大部分内容并没有改变.在这一年多的时间里,也曾学习过其他课程,比如孟宁的Linux内核分析,也看过其他人写的文章.但还是有很多内容无法全部理解,而且从网上文章或讨论中也看出,象我这种似懂非懂的状态很多人都有.比如,在看到linux0.11中的那个TSS结构时就一直在想,为什么要这样设计呀?系统明明没有使用到那么多结构成…
10.5 Initialization Example初始化的例子 译注:本来想把这个例子全部注释完,但由于对intel汇编实不熟悉,有太多的伪指令,本人也是免强看懂,所以就不再做翻译了. $TITLE ('Initial Task') #此处title为开始标识,$符号表示取地址 NAME INIT #为一段程序命名 init_stack SEGMENT RW #定义栈段 可读写 标识符为init_stack DW DUP(?) #保留20个双字位置 tos LABEL WORD #定义一个标…
10.2 Software Initialization for Real-Address Mode   实地址模式的软件初始化 In real-address mode a few structures must be initialized before a program can take advantage of all the features available in this mode. 在实地址模式,程序在能利用这个模式下的的所有可用特性之前,新架构必须被初始化. 10.2.1…