不一般的jmp(s16->s32) 在16位代码中,所有的立即数默认为16位 从16位代码段跳转到32位代码段时,必须做强制转换 深入保护模式:定义显存段 为了显示数据,必须存在两大硬件:显卡 + 显示器 显卡 为显示器提供需要显示的数据 控制显示器的模式和状态 显示器 将目标数据以可见的方式呈现在 ...
分类:
其他好文 时间:
2018-09-17 22:08:30
阅读次数:
243
操作系统应该是一门工程性较强的专业基础课,但目前国内主要以操作系统理论为主进行讲解,少有实现方面讲解,很多CS专业学生甚至不清楚实模式、保护模式的区别,对BIOS也无甚概念。南开大学的赵炯老师以linux0.11版作为案例,详细讲解了计算机的启动过程、实模式到保护模式的跳转、进程、内存、文件系统管理 ...
分类:
其他好文 时间:
2018-09-05 11:10:57
阅读次数:
138
[TOC] 前言 在特定场景下,我们需要在全局使用某一个对象的同一个实例,我们就需要保证一个对象不能存在多个实例。单例模式是一种很常见的设计模式;比如Servlet在Tomcat中是单例的,Spring IOC容器管理的Bean默认是单例的;单例模式就是为了保证一个对象对外只提供一个实例;单例模式实 ...
分类:
其他好文 时间:
2018-07-31 00:32:34
阅读次数:
154
为了解决内存访问越界的问题,英特尔发明了80286处理器,这款处理器引入了保护模式,为现代操作系统和应用程序奠定了基础,但是80286在设计上有些奇葩,例如: 段寄存器为24位,通用寄存器为16位,这样显得不伦不类。 理论上,段寄存器中的数值可以直接作为段基址。80286中16位寄存器最多访问64K ...
分类:
其他好文 时间:
2018-07-20 20:33:14
阅读次数:
152
远古时期的程序开发是直接操作物理内存的,CPU指令的操作数直接使用实地址(实际内存地址),程序员拥有绝对的权利,可以随意访问内存的任意一个地址,可以说是指哪打哪。 使用绝对的物理地址会带来很多问题,例如: 1、难以重定位,程序每次都需要同样地址的内存来运行。 2、给多道程序设计带来了障碍,也就是说, ...
分类:
其他好文 时间:
2018-07-18 20:46:30
阅读次数:
147
程序是指令的集合,程序要运行,必须将其加载早内存中。这就是cpu的cs:ip寄存器是在内存中取指令的原因。 1 内存管理的思路 内核和用户程序分别在自己的地址空间中运行,在实模式下,程序中的地址就等于物理地址,在保护模式下,程序中的地址编程了虚拟地址,虚拟地址对应的物理地址需要经过分页机制的映射。 ...
分类:
其他好文 时间:
2018-06-05 13:26:59
阅读次数:
200
1 实模式 1.1 实模式缺点 保护模式强调的是保护,是在Intel 80286中首次出现. 实模式的特点: 1. 实模式下,操作系统和用户程序属于同一特权级. 2. 用户程序所使用的地址都指向真实的物理地址,也就是说逻辑地址等于物理地址 3. 用户程序可以使用任意段基址,修改内存中任意数据. 4. ...
分类:
其他好文 时间:
2018-05-31 22:05:13
阅读次数:
240
1. 实模式,又叫实地址模式,CPU完全按照8086的实际寻址方法访问从00000h--FFFFFh(1MB大小)的地址范围的内存,在这种模式下,CPU只能做单任务运行;寻址公式为:物理地址=左移4位的段地址+偏移地址,即:物理地址是由16位的段地址和16位的段内偏移地址组成的。 2.保护模式,又叫 ...
分类:
其他好文 时间:
2018-02-13 21:43:30
阅读次数:
182
检测点1.1:按顺序分别为:13 15 78 255 128 56091 检测点1.2:按顺序分别为:1000 1010 1100 1111 11001 1000000 1100100 11111111 1111101000 1111111111111111 10000000000000000000 ...
分类:
编程语言 时间:
2017-12-30 19:08:39
阅读次数:
642
要明白这个首先要知道什么是保护模式和实模式。 以前的操作系统是实模式,例如dos。每个时候只有一个进程在跑,这个进程使用全部的物理内存。 后来发展到保护模式,分时多进程。一个CPU上跑多个进程, 但进程不知道到底有多少内存可以用,它能访问内存最大地址。例如16位系统就能访问2^16byte,32位就 ...
分类:
系统相关 时间:
2017-12-29 12:06:20
阅读次数:
160