E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
《从实模式到保护模式》
ASM:《X86汇编语言-
从实模式到保护模式
》第12章:存储器的保护
12章其实是11章的拓展,代码基本不变,就是在保护模式下展开讨论。★PART1:存储器的保护机制1.修改段寄存器的保护 当执行把段选择子传到段寄存器的选择器部分的时候,处理器固件在完成传送之前,要检查和确认选择子是正确的,并且该选择子选择的描述符也是正确的。假如索引号是正确的,也就是说明索引号8+7要小于等于边界。如果超过边界,那么处理器就会终止处理,产生异常中断13,同时段寄存器的
PhiliAI
·
2016-02-25 20:00
ASM:《X86汇编语言-
从实模式到保护模式
》第11章:进入保护模式
★PART1:进入保护模式1.全局描述符表(GlobalDescriptorTable,GDT) 32位保护模式下,如果要使用一个段,必须先登记,登记的信息包括段的起始地址,段的界限和各种访问属性,如果偏移地址超过了段的界限,就会引发异常中断。和一个段有关的信息需要8个字节来描述,这被称为段的描述符(SegementDescriptor),每个段都需要一个描述符,为了存放描述符,需要在内
PhiliAI
·
2016-02-23 21:00
ASM:《X86汇编语言-
从实模式到保护模式
》5-7章:汇编基础
第5-7章感觉是这一本书中比较奇怪的章节,可能是作者考虑到读者人群水平的差异,故意由浅入深地讲如何在屏幕上显示字符和使用mov,jmp指令等等,但是这样讲的东西有点重复,而且看了第六,第七章以后,感觉第5章的做法真是太笨了。★PART1:显卡与显存 1.显卡与显存 a.显卡控制显示器的最小单位是像素,一个像素对应着屏幕的一个点,屏幕上通常有数十万乃至更多
The_Truth
·
2016-02-18 23:00
进入保护模式(三)——《x86汇编语言:
从实模式到保护模式
》读书笔记17
(十)保护模式下的栈76;以下用简单的示例来帮助阐述32位保护模式下的堆栈操作 77movcx,00000000000_11_000B;加载堆栈段选择子 78movss,cx 79movesp,0x7c00第77~79行用来初始保护模式下的栈。栈段描述符是GDT中第3个(从0开始数)描述符,这个描述符的线性基地址是0x0000_0000,段界限是0x0000_7a00,粒度是字节,B=1,属于可读
u013490896
·
2016-01-28 20:00
保护模式
32位
汇编语言
从实模式到保护模式
16位模式/32位模式下PUSH指令探究——《x86汇编语言:
从实模式到保护模式
》读书笔记16
一、Intel32位处理器的工作模式如上图所示,Intel32位处理器有3种工作模式。(1)实模式:工作方式相当于一个8086(2)保护模式:提供支持多任务环境的工作方式,建立保护机制(3)虚拟8086模式:这种方式可以使用户在保护模式下运行8086程序(比如cmd打开的console窗口,就是工作在虚拟8086模式)有几点需要特别说明:(1)保护模式可分为16位和32位的,由段描述符中的D标志指
u013490896
·
2016-01-28 19:00
push
X86
从实模式到保护模式
关于80286——《x86汇编语言:
从实模式到保护模式
》读书笔记15
一、80286的工作模式80286首次提出了实模式和保护模式的概念。实模式:和8086的工作方式相同;保护模式:提供了存储器管理机制和保护机制,支持多任务。二、80286的寄存器(一)通用寄存器80286的通用寄存器和8086一样,有AX,BX,CX,DX,BP,SP,SI,DI;(二)IP80286的指令指针寄存器也和8086一样,没有什么特别的。(三)标志寄存器80286的标志寄存器同8086
u013490896
·
2016-01-24 20:00
段描述符
80286
从实模式到保护模式
ASM:《X86汇编语言-
从实模式到保护模式
》Charpter 7————————————————用adc命令计算1到1000的累加
在16位的处理器上,做加法的指令是add,但是他每次只能做8位或者16位的加法,除此之外,还有一个带进位的加法指令adc(AddWithCarry),他的指令格式和add一样,目的操作数可以是8位或者16位的通用寄存器或者内存单元,源操作数可以是与目的操作数宽度一致的通用寄存器,内存单元或和立即数(但目的操作数和源操作数同为内存单元除外)。不过,ac指令在执行的时候,除了将目的操作数和源操作数想
The_Truth
·
2016-01-24 20:00
ASM:《X86汇编语言-
从实模式到保护模式
》Charpter 7————————————————用adc命令计算1到1000的累加
在16位的处理器上,做加法的指令是add,但是他每次只能做8位或者16位的加法,除此之外,还有一个带进位的加法指令adc(AddWithCarry),他的指令格式和add一样,目的操作数可以是8位或者16位的通用寄存器或者内存单元,源操作数可以是与目的操作数宽度一致的通用寄存器,内存单元或和立即数(但目的操作数和源操作数同为内存单元除外)。不过,ac指令在执行的时候,除了将目的操作数和源操作数想
The_Truth
·
2016-01-24 20:00
进入保护模式(二)——《x86汇编语言:
从实模式到保护模式
》读书笔记14
首先来段题外话:之前我发现我贴出的代码都没有行号,给讲解带来不便。所以从现在起,我要给代码加上行号。我写博客用的这个插入代码的插件,确实不支持自动插入行号。我真的没有找到什么好方法,无奈之下,只能按照网友的说法,在VIM中给每行代码加上行号,然后再贴出来。在VIM中每一行都添加上行号的方法是::%s/^/\=line(".")/对,只要执行这个命令就可以了。至于为什么这样写,可以参考我的另一篇博文
u013490896
·
2016-01-16 20:00
从实模式到保护模式
段选择子
8086处理器的无条件转移指令——《x86汇编语言:
从实模式到保护模式
》读书笔记13
本博文是对原书8.3.10的内容的总结。一、相对短转移指令格式是:jmpshort标号标号也可以替换成具体的数值(标号和数值是等价的),例如jmpshort0x2000说明:(1)该指令属于段内转移指令,而且只允许转移到距离当前指令-128~127字节的地方。(2)指令的功能是:(IP)=(IP)+8位位移量(范围是-127~128,用补码表示)(3)short指明此处的位移为8位(4)8位位移=
u013490896
·
2016-01-16 18:00
JMP
8086
从实模式到保护模式
进入保护模式(一)——《x86汇编语言:
从实模式到保护模式
》读书笔记12
之前已经做了一些理论上的铺垫,这次我们就可以看代码了。一、代码清单;代码清单11-1 ;文件名:c11_mbr.asm ;文件说明:硬盘主引导扇区代码 ;创建日期:2011-5-1619:54 ;设置堆栈段和栈指针 movax,cs movss,ax movsp,0x7c00 ;计算GDT所在的逻辑段地址 movax,[cs:gdt_base+0x7c00];低16位 movdx,[cs:gd
u013490896
·
2016-01-13 22:00
A20
从实模式到保护模式
数据段描述符和代码段描述符(二)——《x86汇编语言:
从实模式到保护模式
》读书笔记11
这篇博文,我们编写一个C语言的小程序,来解析数据段或者代码段描述符的各个字段。这样我们阅读原书的代码就会方便一点,只要运行这个小程序,就可以明白程序中定义的数据段或者代码段的描述符了。这段代码,我用了“位字段”的知识,这还是第一次使用C语言的这个特性呢,如果有不对的地方,欢迎博友斧正。写代码之前,我们再复习一下数据段描述符和代码段描述符的格式。(图片选自赵炯老师的《Linux内核完全剖析》) #i
u013490896
·
2016-01-12 22:00
C语言
位字段
段描述符
从实模式到保护模式
数据段描述符和代码段描述符(一)——《x86汇编语言:
从实模式到保护模式
》读书笔记10
一、段描述符的分类在上一篇博文中已经说过,为了使用段,我们必须要创建段描述符。80X86中有各种各样的段描述符,下图展示了它们的分类。看了上图,你也许会说:天啊,怎么这么多段描述符啊!我可怎么记住呢?别担心,我会在以后的博文中,跟随原书的作者,为您逐步介绍。我们的学习是循序渐进的,所以不要求一下子掌握所有东西。我们的原则是:用到什么学什么。我们今天的重点是“存储段描述符”。二、段描述符的通用格式[
u013490896
·
2016-01-09 22:00
段描述符
GDT
从实模式到保护模式
数据段描述符
代码段描述符
全局描述符表(GDT)——《x86汇编语言:
从实模式到保护模式
》读书笔记09
在进入保护模式之前,我们先要学习一些基础知识。今天我们看一下全局描述符表(GlobalDescriptorTable,简称GDT)。同实模式一样,在保护模式下,对内存的访问仍然使用段地址加偏移地址。但是,在保护模式下,在每个段能够访问之前,必须先登记。这就好比像C语言中,“对变量的使用必须先定义”一样。每个段在能够使用之前,都要为这个段建立一个描述符。每个描述符占8个字节,这些描述符集中存放在内存
u013490896
·
2016-01-09 12:00
X86
GDT
全局描述符表
从实模式到保护模式
32位x86处理器编程导入——《x86汇编语言:
从实模式到保护模式
》读书笔记08
在说正题之前,我们先看2个概念。1.指令集架构(ISA)ISA的全称是instructionsetarchitecture,中文就是指令集架构,是指对程序员实际“可见”的指令集,包含了程序员编写一个能正确运行的二进制机器语言程序的所有信息,涉及到指令、I/O设备等。例如Intel的IA-32、Intel64、ARM的ARMv7、ARMv8等等。2.微架构微架构(Microarchitecture)
u013490896
·
2016-01-09 00:00
32位
X86
汇编语言
从实模式到保护模式
8086键盘输入实验——《x86汇编语言:
从实模式到保护模式
》读书笔记07
1.BIOS中断我们可以为所有中断类型自定义中断处理过程,包括内部中断、硬件中断和软中断。BIOS中断,又称BIOS功能调用,主要是为了方便地使用最基本的硬件访问功能。通常,为了区分针对同一硬件的不同功能,使用寄存器AH来指定具体的功能编号。比如说,以下的指令用于从键盘读取一个按键:movah,0x00;0功能号对应从键盘读字符 int0x16;键盘服务,int0x16 ;中断返回时,字符的ASC
u013490896
·
2016-01-03 23:00
键盘
中断
BIOS
从实模式到保护模式
《X86汇编语言:
从实模式到保护模式
》读书笔记之引言
有幸结识了《X86汇编语言:
从实模式到保护模式
》一书。我觉得这本书非常好,语言活泼,通俗易懂,源码丰富,受益匪浅。读罢一遍,意犹未尽。
u013490896
·
2016-01-03 22:00
8086实时时钟实验(二)——《x86汇编语言:
从实模式到保护模式
》读书笔记06
上次我们说了代码,这次我们说说怎样看到实验结果。首先编译源文件(我的源文件就在当前路径下,a盘和c盘在上一级目录下):nasm-fbinc08_mbr.asm-oc08_mbr.binnasm-fbinc09_1.asm-oc0901.bin然后将bin文件写入a盘和c盘ddif=c08_mbr.binof=../a.imgddif=c0901.binof=../c.imgbs=512seek=1
u013490896
·
2016-01-03 19:00
中断
RAM
汇编语言
cmos
RTC
从实模式到保护模式
8086实时时钟实验(一)——《x86汇编语言:
从实模式到保护模式
》05
1.代码清单;代码清单9-1 ;文件名:c09_1.asm ;文件说明:用户程序 ;创建日期:2011-4-1622:03 ;=============================================================================== SECTIONheadervstart=0;定义用户程序头部段 program_lengthddprogram_
u013490896
·
2016-01-01 23:00
中断
RAM
汇编语言
cmos
RTC
从实模式到保护模式
8086中断系统——《x86汇编语言:
从实模式到保护模式
》读书笔记04
80X86中断系统能够处理256个中断用中断向量号0~255区别可屏蔽中断还需要借助专用中断控制器Intel8259A实现优先权管理1、中断的分类中断可以分为内部中断和外部中断。(1)内部中断除法错中断指令中断溢出中断单步中断断点中断(2)外部中断非屏蔽中断可屏蔽中断如果觉得上面的分类太抽象,那么下面的图会给你直观的印象。通过这张图,我们可以明白,内部中断是在处理器内部产生。外部中断是通过两个信号
u013490896
·
2016-01-01 22:00
汇编
中断
X86
从实模式到保护模式
硬盘和显卡的访问与控制(三)——《x86汇编语言:
从实模式到保护模式
》读书笔记03
上一篇博文我们用了很大的篇幅说了加载器,这一篇我们该说说用户程序了。先看作者的源码吧。;代码清单8-2 ;文件名:c08.asm ;文件说明:用户程序 ;创建日期:2011-5-518:17 ;=============================================================================== SECTIONheadervstart=0;
u013490896
·
2015-12-26 17:00
汇编
硬盘
显卡
从实模式到保护模式
硬盘和显卡的访问与控制(二)——《x86汇编语言:
从实模式到保护模式
》读书笔记02
上一篇博文我们讲了如何看到实验结果,这篇博文我们着重分析源代码。书中作者为了说明原理,约定了一种比较简单地用户程序头部格式,示意图如下(我参考原书图8-15绘制的,左边的数字表示偏移地址):所以,如果用户程序要利用本章的源码c08_mbr.asm生成的加载器来加载的话,就应该遵循这种头部格式。下面我们讲解源码c08_mbr.asm(粘贴的源代码不一定和配书的代码完全一样,因为有些地方我加了注释);
u013490896
·
2015-12-26 16:00
硬盘
显卡
汇编语言
nasm
从实模式到保护模式
硬盘和显卡的访问与控制(一)——《x86汇编语言:
从实模式到保护模式
》读书笔记01
本文是《x86汇编语言:
从实模式到保护模式
》(电子工业出版社)的读书实验笔记。这篇文章我们先不分析代码,而是说一下在Bochs环境下如何看到实验结果。
u013490896
·
2015-12-26 15:00
硬盘
显卡
汇编语言
从实模式到保护模式
从实模式到保护模式
intel 8086 来说。是一个16位的处理器。他有16位的寄存器。16位的数据总线。20位的地址线。寻址能力1M。因为是16位的寄存器。只有通过 seg:offset的方式。才能寻址1m的地址空间。 到了80386后的处理器。就变成了32位的处理器。寄存器是32位。数据总线也是32.地址也是32位。如果一个寄存器存放的是地址的话。直接寻址能力是4GB。但还是使用了 seg :offset的
·
2015-11-11 08:40
模式
编写操作系统之
从实模式到保护模式
代码模板
在实模式下设置各种参数,然后跳到保护模式,再在屏幕中央打出一串红色字符。实模式执行的第一步是在物理地址为0x200处设置一个坑,调试的时候就可以在物理地址为0x200处设置一个断点。 protect.asm 1 ;****************************************************************** 2 ;文件名称: protect.asm
·
2015-11-07 13:40
操作系统
NASM在Ubuntu上的安装与简单使用
/configuremakesudomakeinstall二、简单使用NASM准备好源文件假设命名为c07_mbr.asm(这是《x86汇编语言:
从实模式到保护模式
》一书的配书代码)
u013490896
·
2015-10-24 18:00
bochs
nasm
bochs创建主引导代码
在win环境下,需要安装的工具是:(1)bochs(2)ddforwindows(3)nasm编译器(4)一个好的nasm编辑器这里使用的是《
从实模式到保护模式
》作者李忠编写的一个AsmEd
acrux1985
·
2015-10-14 15:00
x86汇编--程序加载器
看了《x86汇编
从实模式到保护模式
》,终于有了些浅显的认识,现在和大家分享下。如果有什么不正确的地方,还望各位指正,谢谢!!
YuZhiHui_No1
·
2014-12-05 16:00
操作系统
x86汇编
加载器
bochs调试x86汇编
========================================================================================这是本人参考《x86汇编
从实模式到保护模式
YuZhiHui_No1
·
2014-11-24 15:00
汇编
bochs
保护模式总结(一)——初探
最近看了李忠老师写的《
从实模式到保护模式
》,发现保护模式的东西其实真不少,概念性的东西挺多,但是总体来说,弄明白一些新事物的来由,就会加深记忆。
u011879578
·
2014-04-13 10:00
《自己动手写操作系统》第三章pmtest2源码解析
一、总体思路剖析:pmtest2,其实实现的是
从实模式到保护模式
,然后从保护模式回到实模式,最后回归到dos。其中,一开始就进入了实模式,然后在实模式下初始化段描述符,处理GDT等,进入保护模式
trochiluses
·
2014-03-03 20:00
JMP
自己动手写操作系统
实模式与保护模式
长跳转
0entry
《自己动手写操作系统》第三章 pmtest1——
从实模式到保护模式
摘要:本节,我们将学习如何从实模式进入保护模式,剖析pmtest1.asm源码。详细讲解如何从保护模式进入实模式。1.头文件编写:这一部分,你需要把一些关键物理器件和数据结构的布局记在脑子里GDT描述符:32b段基地址(B2、B3、B4、B7)+20b段限长(B0、B1、B6的低4位)+12b段属性(B5、B6的高4位),详细布局见下图(针对代码段和数据段):所以,我们定义了如下的存储段描述符结构
谁不小心的
·
2014-03-02 22:43
自己动手写操作系统
自己动手写操作系统
实模式
保护模式
《自己动手写操作系统》第三章 pmtest1——
从实模式到保护模式
摘要:本节,我们将学习如何从实模式进入保护模式,剖析pmtest1.asm源码。详细讲解如何从保护模式进入实模式。1.头文件编写:这一部分,你需要把一些关键物理器件和数据结构的布局记在脑子里GDT描述符:32b段基地址(B2、B3、B4、B7)+20b段限长(B0、B1、B6的低4位)+12b段属性(B5、B6的高4位),详细布局见下图(针对代码段和数据段):所以,我们定义了如下的存储段描述符结构
trochiluses
·
2014-03-02 22:00
保护模式
实模式
自己动手写操作系统
操作系统:从实模式切换到保护模式
本次提供的代码是
从实模式到保护模式
的切换,并在保护模式下打印"Hello,world!"。实验环境 lenovoG470 ubuntu11
sx154893743
·
2013-10-07 14:00
操作系统
保护模式
于渊-动手写操作系统4
阅读更多操作系统版本五学习内容:现在我们开始
从实模式到保护模式
的跳跃了。下面我们先来说说什么是保护模式。
jjchen_lian
·
2013-08-14 17:00
于渊-动手写操作系统4
操作系统版本五学习内容:现在我们开始
从实模式到保护模式
的跳跃了。下面我们先来说说什么是保护模式。
jjchen_lian
·
2013-08-14 17:00
操作系统
mov sreg, r/m16 在16位和32位编程中的区别
总结于《X86汇编语言
从实模式到保护模式
》仅适用于X86系列处理器1.两者的区别:例:movds,axA.在指定16位编译模式下,产生的二进制码是8ED8B.在指定32位编译模式下(在某些老式的编译器中才会出现的
·
2013-07-07 17:00
reg
操作系统引导过程探究
前言本篇文章并不旨在完整的讨论一个多引导系统程序怎样去引导不同的操作系统,而只打算从编写操作系统的角度出发,谈谈计算机怎样从加电开始,从无到有,将操作系统运行起来,在其中将尽量详尽的描述
从实模式到保护模式
的
daiyutage
·
2013-05-07 16:00
操作系统
BIOS
Linux内核源码学习 (1)-
从实模式到保护模式
在查找资料的过程发现了一份关于linux内核启动的课件,在这里附上。(本笔记参考了众多资料,向原作者致敬) 下载 鉴于本人对于操作系统已经有了一些初步的认识,所以本人从系统启动的入口点开始分析linux内核源码。一、linux-2.6.34.13/arch/x86/boot/setup.ld Linux中与x86体系结构相关的源码在linux/arch/x86/中,boot/set
notishell
·
2013-01-02 20:00
保护程序简单学习(二)
一、上篇基本按书上写个一个
从实模式到保护模式
的简单实现,但是上面的实现书上说太暴力了主要是死循环,就添加了从保护调回到实模式的实现。
加勒比10
·
2012-09-23 20:53
保护模式
实模式
FreeBSD虚拟内存系统的启动
FreeBSD虚拟内存子系统是许多其他子系统的基础,譬如文件子系统、设备子系统、进程子系统等等,而且它与系统设备、体系结构密切相关,特别是
从实模式到保护模式
下的映射,需要完成大量的工作。
y296144646q
·
2011-07-17 19:00
工作
struct
object
汇编
FreeBSD
X86
从实模式到保护模式
跳转的详解
从实模式到保护模式
跳转的详解 三年前拿到《自己动手写操作系统》第一版的时候,虽然很有兴趣,但是没有时间详细地看进去,直到前段时间又看到它的第二版出来,兴趣又提上来了。
yesjavame
·
2009-12-03 14:00
数据结构
Go
从实模式到保护模式
跳转的详解
从实模式到保护模式
跳转的详解三年前拿到《自己动手写操作系统》第一版的时候,虽然很有兴趣,但是没有时间详细地看进去,直到前段时间又看到它的第二版出来,兴趣又提上来了。
axman
·
2009-12-03 14:00
数据结构
工作
video
存储
Go
Descriptor
上一页
1
2
3
4
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他