2019独角兽企业重金招聘Python工程师标准>>>

1.上次说要实现键盘中断还没实现的
2.接着又有问题了就是对于异常的处理,例如一个也异常的处理

一直在512字节里面写很憋屈,这下把书上的代码用上暂且内存分布如下

慢慢修改了,在更新修改

#直接用给的程序加载从第二个扇区开始
#加载的是保护模式的程序
#但是加载到什么地方哪?按照书上的位置#显示的时候直接写显存位置怎么处理?怎么回车换行
#用一个全局变量标示写入的位置80*25的标准#全局段描述表     0 空1 数据段         初始地址是0x0          界限是4G                   4G         全局修改2 主程序加载的段 初始地址是0x7C00       界限是1FF                  512字节    跳转保护3 堆栈段         初始地址是0x7C00       界限是0xFFFFE000<<FFFFFFFF 大小4KB    ESP的初始值?4 显示描述       初始地址是0xB8000      界限是7FFFF                也就是  5 系统公用例子代码段6 内核数据段7 内核代码段
#全局段描述表结束
#中断描述符中断段         初始地址是0X0000A000   界限是2^11-1=0X7FF
#中断段描述符结束
#内存分布图
00000000
00006C00-------------------------------------|4KB大小内核栈 地址换算 基地址限长     3|
00007C00-------------------------------------|512字节的引导位置                     2    |
00007DFF-------------------------------------
00007E00-------------------------------------|描述符位置(每个描述符占位8个字节) 1ff=512/8=64|
00007FFF---------------------------------------|描述符防止不够空缺出来的            512额外字节|
000081FF----------------------------------------
00008200----------------------------------------|LDT描述符位置 1ff=512/8=63|
000083FF----------------------------------------|防止描述符不够额外添加的          512额外字节|
000085FF----------------------------------------
00008600----------------------------------------|tss描述符  1ff |
00009FFF----------------------------------------
0000A000----------------------------------------|中断安装的位置 256*8=2^11                |
0000A800-----------------------------------------
00010000---------------------------------------
00011000--------------------------------------
00020000-------------------------------------|1024页目录 4KB       |
00021000-------------------------------------|1024页表   4KB->4M       |
00022000-------------------------------------
00040000-------------------------------------|系统核心的程序和数据加载位置(大小不固定)|
0009ffff-------------------------------------
000A0000
000B8000-------------------------------------|  显示区域                             4|
000BFFFF-------------------------------------
000fffff
00100000-------------------------------------|用户程序和数据|
FFFFFFFF-------------------------------------

------------------------------------------

更新:内存地址加载初始位置不变

运行地址改为了0x50400处(由链接的过程静态确定了)

转载于:https://my.oschina.net/findurl/blog/188722

进入保护模式(八)简单OS内存使用分布相关推荐

  1. 【OS学习笔记】二十八 保护模式八:任务切换对应的汇编代码之内核代码

    本汇编代码对应以下两篇文章对应的内核汇编代码: OS学习笔记]二十六 保护模式八:任务门-任务切换 [OS学习笔记]二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中断嵌套 ...

  2. 【OS学习笔记】二十六 保护模式八:任务门---任务切换

    上一篇文章学习了:保护模式七:调用门与依从的代码段----特权级保护 主要学习了以下内容: 描述符特权级(目标对象的特权级)DPL 描述符特权级(目标对象的特权级)DPL 当前特权级CPL 低特权级的 ...

  3. 【OS学习笔记】二十九 保护模式八:任务切换对应的汇编代码之用户程序代码

    本汇编代码对应以下两篇文章对应的用户程序汇编代码: [OS学习笔记]二十六 保护模式八:任务门-任务切换 [OS学习笔记]二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中 ...

  4. 操作系统-ucore-lab1 Bootloader启动操作系统 A20 GDT全局描述符 使能和进入保护模式 ELF格式os 8259A中断控制器 8253定时器 函数调用堆栈跟踪函数

    操作系统-ucore-lab1 本文详细地址 实验一:系统软件启动过程 参考 重要文件 调用顺序 1. boot/bootasm.S | bootasm.asm(修改了名字,以便于彩色显示)a. 开启 ...

  5. 进入保护模式(三)内存的分页

    2019独角兽企业重金招聘Python工程师标准>>> 一.分页 先入为主理解的分页和系统中内存内应的分页 1.弄过数据库数据查找展示,有个数据分页展示的概念,这个的目的是为了速度. ...

  6. 【OS学习笔记】二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中断嵌套

    上一篇文章学习了任务门的概念:任务门-任务切换.主要学习了以下内容: 使用任务门进行任务切换的一般工作原理(和中断有关的任务切换) 本篇文章接着上一篇文章学习以下内容: 利用jmp进行任务切换 利用c ...

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

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

  8. 【OS学习笔记】十五 保护模式三:保护模式下的内存访问机制

    上一篇文章学习了段描述符与段描述符各个标志位的含义:段描述符 本篇文章学习如何进入保护模式,并学习如何在保护模式下进行内存访问. 1.如何进入保护模式 假设我们已经用汇编语言将段描述符安装到GDT中( ...

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

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

最新文章

  1. 明晚8点公开课 | 用AI给旧时光上色!详解GAN在黑白照片上色中的应用
  2. linux卸载kodi,如何在Ubuntu上安装Kodi 18 Beta
  3. 《COM组件开发实践》系列文章
  4. template模板中插入自定义参数
  5. FreeBSD8.0搭建Apache+PHP+MySql平台
  6. js 字符串减去字符串_js关于字符串、条件语句和自加和自减
  7. Python机器学习:多项式回归与模型泛化003过拟合与欠拟合
  8. 思岚科技受邀2018高交会 携多项“黑科技”亮相
  9. Leetcode 刷题笔记(九) —— 解题方法:双指针
  10. 无缝向上滚动文字代码(Js+div),可用在公告栏
  11. 行列转换的SQL语句
  12. linux ss服务器,【ss】Linux上ss命令的安装与使用
  13. 计算机专业论文要怎么写,计算机专业本科生论文摘要怎么写 计算机专业本科生论文摘要范文参考...
  14. android:模仿微信联系人效果
  15. js中Math.random()生成指定范围数值的随机数
  16. python之禅怎么读_混为一谈的读音
  17. CSS---各种分割线
  18. 自己碰到的360安全浏览器兼容模式的问题总结
  19. 用 Python 实现手机自动答题,这下百万答题游戏谁也玩不过我!
  20. 服务器绑定自己的域名-腾讯云

热门文章

  1. 苹果为CloudKit云服务添加服务器端API
  2. 从一个小场景学会使用 apply方法
  3. 树、森林和二叉树之间的转换
  4. Bsie(鄙视IE)
  5. 【简单排序算法】:简单选择排序、直接插入排序和冒泡排序
  6. 使用ROW_NUMBER()查询:列名 'RowNumber' 无效。
  7. 正式开通我的开源博客
  8. Adobe下周将推新补丁和新的更新模式
  9. mysqlbinlog: unknown variable 'default-character-set=gbk'错误
  10. 万能Ghost全攻略(最详细完整的教程)