进入保护模式(八)简单OS内存使用分布
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内存使用分布相关推荐
- 【OS学习笔记】二十八 保护模式八:任务切换对应的汇编代码之内核代码
本汇编代码对应以下两篇文章对应的内核汇编代码: OS学习笔记]二十六 保护模式八:任务门-任务切换 [OS学习笔记]二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中断嵌套 ...
- 【OS学习笔记】二十六 保护模式八:任务门---任务切换
上一篇文章学习了:保护模式七:调用门与依从的代码段----特权级保护 主要学习了以下内容: 描述符特权级(目标对象的特权级)DPL 描述符特权级(目标对象的特权级)DPL 当前特权级CPL 低特权级的 ...
- 【OS学习笔记】二十九 保护模式八:任务切换对应的汇编代码之用户程序代码
本汇编代码对应以下两篇文章对应的用户程序汇编代码: [OS学习笔记]二十六 保护模式八:任务门-任务切换 [OS学习笔记]二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中 ...
- 操作系统-ucore-lab1 Bootloader启动操作系统 A20 GDT全局描述符 使能和进入保护模式 ELF格式os 8259A中断控制器 8253定时器 函数调用堆栈跟踪函数
操作系统-ucore-lab1 本文详细地址 实验一:系统软件启动过程 参考 重要文件 调用顺序 1. boot/bootasm.S | bootasm.asm(修改了名字,以便于彩色显示)a. 开启 ...
- 进入保护模式(三)内存的分页
2019独角兽企业重金招聘Python工程师标准>>> 一.分页 先入为主理解的分页和系统中内存内应的分页 1.弄过数据库数据查找展示,有个数据分页展示的概念,这个的目的是为了速度. ...
- 【OS学习笔记】二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中断嵌套
上一篇文章学习了任务门的概念:任务门-任务切换.主要学习了以下内容: 使用任务门进行任务切换的一般工作原理(和中断有关的任务切换) 本篇文章接着上一篇文章学习以下内容: 利用jmp进行任务切换 利用c ...
- 【OS学习笔记】三十 保护模式九:段页式内存管理机制概述
上几篇文章学习了任务切换相关知识,如下: [OS学习笔记]二十六 保护模式八:任务门-任务切换 [OS学习笔记]二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中断嵌套 今 ...
- 【OS学习笔记】十五 保护模式三:保护模式下的内存访问机制
上一篇文章学习了段描述符与段描述符各个标志位的含义:段描述符 本篇文章学习如何进入保护模式,并学习如何在保护模式下进行内存访问. 1.如何进入保护模式 假设我们已经用汇编语言将段描述符安装到GDT中( ...
- 【OS学习笔记】三十五 保护模式十:中断描述符表、中断门和陷阱门
上一篇文章学习了中断与异常的概念:[OS学习笔记]三十四 保护模式十:中断和异常区别 本片文章接着学习以下内容: 中断描述符表 中断门 陷阱门 1 中断描述符表 我们前面讲了无数次,在实模式下,是由位 ...
最新文章
- 明晚8点公开课 | 用AI给旧时光上色!详解GAN在黑白照片上色中的应用
- linux卸载kodi,如何在Ubuntu上安装Kodi 18 Beta
- 《COM组件开发实践》系列文章
- template模板中插入自定义参数
- FreeBSD8.0搭建Apache+PHP+MySql平台
- js 字符串减去字符串_js关于字符串、条件语句和自加和自减
- Python机器学习:多项式回归与模型泛化003过拟合与欠拟合
- 思岚科技受邀2018高交会 携多项“黑科技”亮相
- Leetcode 刷题笔记(九) —— 解题方法:双指针
- 无缝向上滚动文字代码(Js+div),可用在公告栏
- 行列转换的SQL语句
- linux ss服务器,【ss】Linux上ss命令的安装与使用
- 计算机专业论文要怎么写,计算机专业本科生论文摘要怎么写 计算机专业本科生论文摘要范文参考...
- android:模仿微信联系人效果
- js中Math.random()生成指定范围数值的随机数
- python之禅怎么读_混为一谈的读音
- CSS---各种分割线
- 自己碰到的360安全浏览器兼容模式的问题总结
- 用 Python 实现手机自动答题,这下百万答题游戏谁也玩不过我!
- 服务器绑定自己的域名-腾讯云