实模式和保护模式区别及寻址方式 转载请注明出处:http://blog.csdn.NET/rosetta 64KB-4GB-64TB? 我记得大学的汇编课程、组成原理课里老师讲过实模式和保护模式的区别,在很多书本上也有谈及,无奈本人理解和感悟能力实在太差,在很长一段时间里都没真正的明白它们的内含,更 ...
分类:
其他好文 时间:
2016-12-04 11:25:22
阅读次数:
214
OpenBSD引导的第二部PBR,也是活动分区的一个扇区的代码,由第一步的MBR加载到0x7C00处,manpage里详细的讲解了过程和大致实现 biosboot(8) (http://man.openbsd.org/OpenBSD-6.0/man8/i386/biosboot.8),代码在sys/ ...
分类:
其他好文 时间:
2016-11-19 03:14:21
阅读次数:
251
网址:http://blog.csdn.net/billpig/article/details/5833980 保护模式下的段寄存器 由 16位的选择器 与 64位的段描述符寄存器 构成段描述符寄存器: 存储段描述符选择器:存储段描述符的索引 PS:原先实模式下的各个段寄存器作为保护模式下的段选择器 ...
分类:
其他好文 时间:
2016-08-07 12:26:40
阅读次数:
246
这节讲了中断与异常的一些基本概念。然后通过代码实现一个显示字符的中断和时钟中断。
实模式与保护模式下的中断有区别
保护模式下的中断与实模式下的中断有几点不同。
实模式下的中断向量表在保护模式下被IDT取代实模式下可以使用BIOS中断,而保护模式下不能用
这里面出现了一个新的名词IDT,接下来就介绍什么是IDT。
中断描述符表(IDT,Interrupt
Des...
分类:
其他好文 时间:
2016-06-10 11:09:30
阅读次数:
316
逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分 ...
分类:
其他好文 时间:
2016-05-26 23:21:21
阅读次数:
237
之前做了那么多铺垫,我们终于可以看看第14章的代码了。
对于引导代码和用户程序,依然采用第13章的;对于内核程序(c14_core.asm),编译的时候有几行报错了,只要加上dword即可解决。...
分类:
编程语言 时间:
2016-05-22 12:31:35
阅读次数:
393
今天开始学习intel处理器的保护模式。书的第二章
这节讲述的是如何从实模式进入保护模式。用的例子是在保护模式下向屏幕上输出字符P
如何进入保护模式呢?主要步骤如下:
0. 进入保护模式的步骤
准备GDT用lgdt加载gdtr打开A20置r0的PE位位1跳转,进入保护模式
下面是书的例子:
1. 进入保护模式实例
; ===================...
分类:
其他好文 时间:
2016-05-18 19:23:04
阅读次数:
197
上节内容是从实模式进入到保护模式,但只是进入保护模式打印了一个字母P。但是没有体现出保护模式的优势,也没有从保护模式中返回。这节就是要体验保护模式下读写大地址内存的能力和从保护模式返回到实模式。
这节要做的内容如下:首先在屏幕的第11行输出In Protect Mode now. ^-^。然后在屏幕第12行输出内存中起始地址为5MB的连续的8个字节。然后向这个以5MB开始的内存中写入AB...
分类:
其他好文 时间:
2016-05-18 18:34:37
阅读次数:
263
分享一个最近丢了手机心塞到爆炸的我,现在穷的只剩下满脑子的智慧了,好了,我要开始学习了.
首先,搭建一个linux0.11的系统环境,贴出结果图.
从开机加电到执行main函数之前的过程.
1. 启动BIOS,准备实模式下的中断向量表和中断服务程序;
2. 从启动盘加载操作系统程序到内存,加载操作系统程序的工作就是利用第一步中断服务程序实现的;
3. 为执行32位的main函数做过渡工...
分类:
系统相关 时间:
2016-05-13 03:00:59
阅读次数:
270
通过调用门进行控制转移
1.关于堆栈切换
2.通过调用门进行控制转移和返回的具体过程...
分类:
编程语言 时间:
2016-05-12 15:29:04
阅读次数:
290