8个ucore实验

  • Bootloader/Interrupt/Device Driver(实现中断机制,设备管理)
  • 物理内存管理(实现连续物理空间的管理和使用,内存管理)
  • 虚拟内存管理(换页机制,内存管理)
  • 内核线程管理(内核线程管理,cpu管理)
  • 用户进程管理(建立用户进程的关键信息,系统调用,建立一个最简单的os)
  • 进程管理(进程调度,进程管理)
  • 同步互斥(同步互斥机制,进程管理)
  • 文件系统(建立一个简单的os)

了解X86-32硬件-运行模式

80386的4种运行模式

  • 实模式
  • 保护模式
  • SMM模式
  • 虚拟8086模式

80386的内存使用框架

  • X86-32是32位处理器可以寻址的物理内存地址(内存条)是4G
  • 逻辑地址是应用程序直接使用的地址
  • 段机制启动,页机制未启动:逻辑地址->段机制处理->线性地址=物理地址=内存条上实际地址
  • 段机制和页机制都启动:逻辑地址->段机制处理->线性地址->页机制处理->物理地址=内存条上实际地址

80386的寄存器
32位CPU所含有的寄存器有:
4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS) 1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 共八种

  1. 通用寄存器EAX、EBX、ECX、EDX、ESI、EDI、ESP和EBP
  2. 段寄存器ES、CS、SS、DS、FS和GS
  3. 指令指针寄存器EIP
  4. 标志寄存器Eflags
  5. 控制寄存器(一般开发操作系统,系统软件时用到)
  6. 系统地址寄存器(一般开发操作系统,系统软件时用到)
  7. 调试寄存器(一般开发操作系统,系统软件时用到)
  8. 测试寄存器(一般开发操作系统,系统软件时用到)

通用寄存器

  • 寄存器EAX通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。可用于乘、 除、输入/输出等操作,使用频率很高
  • 寄存器EBX称为基地址寄存器(Base Register)。它可作为存储器指针来使用
  • 寄存器ECX称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用CL来指明移位的位数
  • 寄存器EDX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。
  • 寄存器ESI、EDI、SI和DI称为变址寄存器(Index Register),它们主要用于存放存储单元在段内的偏移量
  • 寄存器EBP、ESP、BP和SP称为指针寄存器(Pointer Register),主要用于存放堆栈内存储单元的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。

指令指针寄存器
32位CPU把指令指针扩展到32位,并记作EIP,EIP的低16位与先前CPU中的IP作用相同。

指令指针EIP、IP(Instruction Pointer)是存放下次将要执行的指令在代码段的偏移量。在具有预取指令功能的系统中,下次要执行的指令通常已被预取到指令队列中,除非发生转移情况。所以,在理解它们的功能时,不考虑存在指令队列的情况。

标志寄存器

一、运算结果标志位 1、进位标志CF(Carry Flag) 进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。

2、奇偶标志PF(Parity Flag) 奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。利用PF可进行奇偶校验检查,或产生奇偶校验位。在数据传送过程中,为了提供传送的可靠性,如果采用奇偶校验的方法,就可使用该标志位。

3、辅助进位标志AF(Auxiliary Carry Flag) 在发生下列情况时,辅助进位标志AF的值被置为1,否则其值为0:

(1)、在字操作时,发生低字节向高字节进位或借位时; (2)、在字节操作时,发生低4位向高4位进位或借位时。对以上6个运算结果标志位,在一般编程情况下,标志位CF、ZF、SF和OF的使用频率较高,而标志位PF和AF的使用频率较低。

4、零标志ZF(Zero Flag) 零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。

5、符号标志SF(Sign Flag) 符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。

6、溢出标志OF(Overflow Flag) 溢出标志OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。

“溢出”和“进位”是两个不同含义的概念,不要混淆。如果不太清楚的话,请查阅《计算机组成原理》课程中的有关章节。

OS学习笔记-2(清华大学慕课)mooc实验介绍相关推荐

  1. 【OS学习笔记】四十 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务二代码

    本文是以下几篇文章对应的微型动态加载的用户程序/任务二代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十 ...

  2. 【OS学习笔记】三十九 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务一代码

    本文是以下几篇文章对应的动态加载的用户程序/任务一代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 ...

  3. 【OS学习笔记】三十八 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----微型内核汇代码

    本文是以下几篇文章对应的微型内核代码汇编代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 保护模式十 ...

  4. 【OS学习笔记】三十七 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----主引导扇区代码

    本文是以下几篇文章对应的主引导扇区代码汇编代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 保护模式 ...

  5. 【OS学习笔记】三十六 保护模式十:通过中断发起任务切换----中断任务

    上一篇文章学习了:OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 本篇文章接着上一篇文章学习中断任务. 我们在前面文章中一直在说通过中断发起任务切换,本文就是将之前没有说明白的内容:通 ...

  6. 【OS学习笔记】三十五 保护模式十:中断描述符表、中断门和陷阱门

    上一篇文章学习了中断与异常的概念:[OS学习笔记]三十四 保护模式十:中断和异常区别 本片文章接着学习以下内容: 中断描述符表 中断门 陷阱门 1 中断描述符表 我们前面讲了无数次,在实模式下,是由位 ...

  7. 【OS学习笔记】三十四 保护模式十:中断和异常区别

    上几篇文章学习了分页机制的一些原理: [OS学习笔记]三十 保护模式九:段页式内存管理机制概述 [OS学习笔记]三十一 保护模式九:页目录.页表和页三者的关系详解 今天继续学习保护模式下的关于中断与异 ...

  8. 【OS学习笔记】三十三 保护模式九:分页机制对应的汇编代码之---用户程序代码

    本片文章是以下两篇文章: [OS学习笔记]三十 保护模式九:段页式内存管理机制概述 [OS学习笔记]三十一 保护模式九:页目录.页表和页三者的关系详解 对应的用户程序汇编代码. ;代码清单16-2;文 ...

  9. 【OS学习笔记】三十二 保护模式九:分页机制对应的汇编代码之---内核代码

    本片文章是以下两篇文章: [OS学习笔记]三十 保护模式九:段页式内存管理机制概述 [OS学习笔记]三十一 保护模式九:页目录.页表和页三者的关系详解 对应的内核汇编代码. ;代码清单16-1;文件名 ...

  10. 【OS学习笔记】三十 保护模式九:段页式内存管理机制概述

    上几篇文章学习了任务切换相关知识,如下: [OS学习笔记]二十六 保护模式八:任务门-任务切换 [OS学习笔记]二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中断嵌套 今 ...

最新文章

  1. 3D惯导Lidar SLAM
  2. python拍7游戏代码_Python基础语法-7(小游戏)
  3. java元婴期(29)----java进阶(springmvc(3)---springmvc和mybatis整合参数绑定(上))
  4. Python-数据结构(一)
  5. 机器学习-分类算法-逻辑回归13
  6. zabbix监控ntpd服务
  7. windows 指定的网络名不可用__被我解决了!
  8. unity发布成手机app怎么不能被顶_Unity中Android API 28之后无法HTTP请求
  9. 迭代器以及迭代器的作用
  10. iOS中MVC等设计模式详解
  11. 从虚幻 4 中采集 360 度立体电影
  12. GDAL源码剖析(七)之GDAL RasterIO使用说明
  13. vim中自动格式化代码
  14. duplicate from active dg 的 run 脚本 sfile 为完整配置可能导致的一些错误
  15. 本机ip与外网ip(附带查询方法)
  16. absolute位置用法html,html/css中相对定位relative和绝对定位absolute的用法
  17. 加密与解密(一) -- 壳、加壳
  18. Visual C#程序设计基础pdf
  19. 3DMAX渲染AO(白膜)图的三种方法
  20. 在线教育:基因不同,命运不同

热门文章

  1. Linux错误:warning: here-document at line 5 delimited by end-of-file (wanted `EOF`
  2. here-document at line y delimited by end-of-file
  3. ubuntu系统损坏修复_修复损坏的ubuntu gui
  4. 使html轮廓颜色不同,css中border颜色不同怎么设置?
  5. Hexo+Github实现相册功能
  6. c语言getch 的用法,c语言getch()的用法是什么?
  7. 你为什么总是很忙碌,却还在原地踏步!
  8. R 一行代码出Cox回归模型的表格
  9. 完美世界手游服务器维护中,完美世界手游黑屏闪退解决办法 玩不了怎么办
  10. 电话号码被标记了怎么取消?标记取消最强攻略来了