- 博客(18)
- 资源 (13)
- 收藏
- 关注
转载 GNU ARM 汇编快速入门
<br />ARM汇编语言源程序语句,一般由指令,伪操作,宏指令和伪指令作成.ARM汇编语言的设计基础是汇编伪指令,汇编伪操作和宏指令. <br /><br />目前常用的ARM编译环境有2种:<br />ARMASM: ARM公司的IDE中使用了CodeWarrior的编译器,绝大多数windows下的开发者都在使用这一环境,完全按照ARM的规定; <br />GNU ARM ASM: GNU工具的ARM版本,与ARMASM略有不同; <br /><br />关于CodeWarriror
2010-10-29 22:11:00 883
转载 AT&T汇编
开发一个OS,尽管绝大部分代码只需要用C/C++等高级语言就可以了,但至少和硬件相关部分的代码需要使用汇编语言,另外,由于启动部分的代码有大小限制,使用精练的汇编可以缩小目标代码的Size。另外,对于某些需要被经常调用的代码,使用汇编来写可以提高性能。所以我们必须了解汇编语言,即使你有可能并不喜欢它。 如果你是计算机专业的话,在大学里你应该学习过Intel格式的8086/80386汇编,这里就不再讨论。如果我们选择的OS开发工具是GCC以及GAS的话,就必须了解AT&T汇编语言语法,因为GCC/GAS只支持
2010-10-22 22:48:00 672
原创 标志寄存器
<br />CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都可能不同)具有三种作用:<br />1) 用来存储相关指令的某些执行结果;<br />2) 用来为CPU执行相关指令提供行为依据;<br />3) 用来控制CPU的相关工作方式。<br /> <br />这种特殊的寄存器在8086CPU中,被称为标志寄存器。8086CPU的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW)。简称flag。<br />flag和其他寄存器不一样,其他寄存器是用来存放数据的,都是整
2010-10-21 22:04:00 6397
原创 .COM文件
<br /> COM文件是一种可执行程序的内存映像文件,它与只有16位地址线的8位机上的CP/II操作系统下的可执行程序结构相似。在COM程序执行过程中,除了调用DOS功能和ROM BIOS功能,以及用户特意安排外,段寄存器一般都不发生变化。四个段寄存器具有相同的内容,指向PSP(DOS利用PSP来和被加载的程序进行通信),因此程序的大小仍限于64K以内。COM文件的入口地址必须是100H,而EXE文件可以有多个段。其中CS和SS以及IP和SP在程序装入时由DOS根据文件头中的信息初始化,ES和D
2010-10-20 11:32:00 1246
转载 ELF文件结构
<br />Linux可执行文件为ELF格式,ELF格式文件主要分为以下几类:<br />1. 可重定位文件(Relocatable File),这类文件包含了代码和数据,可以被用来链接成可执行文件或共享目标文件,静态链接库也可以归为这一类,如.o文件。<br />2. 可执行文件(Executable File),这类文件包含了直接执行的程序,如/bin/bash等。<br />3. 共享目标文件(Shared Object File),链接器可以使用这种文件跟其他的可重定位文件和共享目标文件链接,
2010-10-20 09:31:00 741
转载 系统启动过程简介
什么是BIOS?<br />BIOS:basic inout/output system基本输入输出系统.它是固化在ROM上的一段程序,但电脑电源打开的时候,BIOS是第一个被执行的程序。其他的程序都必须先加载到RAM才能运行。认识BIOS首先要知道几个名词:北桥,南桥,FLASH Memory,CMOS,SMBIOS 南北桥:主板芯片组,北桥主要控制着CPU和内存;南桥:负责PCI,PCI-E,USB,VGA等外围设备。南桥里面有一个特殊的区块,即负责存储CMOS的空白区域,是用来让BIOS存储用户设
2010-10-19 18:03:00 1461
原创 描述符归类总结
存储段描述符与系统段描述符结构完全相同,区别的标志是属性字节中的描述符类型位DT的值。DT=1表示存储段,DT=0表示系统段。 存储段描述符中,TYPE字段说明存储段描述符所描述的存储段具体属性。此字节共占4位,涵义丰富。其中位3指示所描述的段是代码段还是数据段(应该是广义的,包含堆栈段等)。用符号E标示,E=0标示段是不可执行的,即数据段;E=1标示段是可执行的,即代码段。 数据段描述符中具体的位又标示了是否可写等属性。 代码段描述符中具体的位又标示了是否可读等属
2010-10-18 16:03:00 673
原创 中断和异常
<br /> 在保护模式下,中断机制发生了很大的变化,原来的中断向量表已经被IDT所代替,实模式下使用的BIOS中断在保护模式下已经不能用了。联系调用门,中断门和调用门的作用机理其实是一样的,只不过使用调用门时使用call指令,而这里我们使用int 指令。<br /> 中断,又处理其外部的事件引起,比如外设请求,软件通过执行int指令等。异常,则通常是在处理器执行指令的过程中检测到错误引起的。中断和异常不可以简单的按照硬件或者软件,引起他们的源进行划分,可以理解为,中段和异常没有严格的界
2010-10-18 14:33:00 505
原创 地址转换、内存地址扩展方向
<br />虚拟地址、线性地址、物理地址 <br /> 保护模式下,虚拟存储器由大小可变的存储块组成,这样的块称为段。描述附表用来描述段的位置、大小和使用情况。这些地址的集合称为虚拟地址空间。程序使用的都是虚拟地址空间,每一个任务有一个虚拟地址空间。为避免多个并行任务的多个虚拟地址空间直接映射到同一物理地址空间,采用线性地址空间隔离虚拟地址空间和物理地址空间。线性地址空间由一维的线性地址构成,线性地址空间和物理地址空间对等。分段管理机制实现虚拟地址空间到线性地址空间的映射。分页管理机制把
2010-10-16 00:20:00 1865
原创 控制转移(二)
<br /> 特权级转移这块一直觉得很混乱,理不出头绪,现在终于发现问题在哪了:不要将特权级和代码段、数据段、堆栈段搅在一块。代码段、数据段、堆栈段他们各自有自己的特权级处理规则。在学习的过程中还要有意识的提醒自己这种规则是哪种类型段的规则。三种类型的段相互配合才能组成一段可以运行的程序。既然三种类型之间的段有联系,三种类型段的特权级处理方式也会有自己的联系和区别。在学习中有意识的提醒自己正在阅读的规则是属于哪种类型的段的,就能很好的理解他们之间的联系和区别,从而使学习事半功倍。<br />
2010-10-14 16:50:00 563
原创 控制转移(一)
控制转移基本可以分为两大类:同一任务内的转移和任务间的转移(任务切换)。同一任务内的转移又分为:段间转移、特权级不变的段间转移、特权级变换的段间转移。段内转移与实模式下相似,不涉及特权级变换和任务切换。只有段间转移才涉及特权级变换和任务切换。段间转移指令 与是模式下一样,指令JMP、CALL和RET都具有段间转移的功能,指令INT和IRET总是段间转移。此外,中断、异常也将引起 段间转移。与实模式下相似,段间转移指令JMP和段间调用指令CALL还可以分为段间直接转移和段间间接转移两类。
2010-10-14 16:25:00 1162
原创 任务状态段和门
<br /> 每一个任务(可以理解为进程)都有一个任务状态段TSS,用于保存任务的有关信息,在任务内变换特权级和任务切换时要用到这些信息。<br /> 系统段是为实现存储管理机制所使用的一种特别的段。在80386中,有两种系统段:任务状态段TSS和局部描述附表LDT段(注意:全局描述附表GDT不属于状态段)。不光在高级语言应用或者说用户应用程序编程中用到了数据结构,个人觉得在CPU硬件的支持下,系统编程也是把数据结构发挥的淋漓尽致,甚至CPU硬件支持本身就充分体现了结构化,或者说数据结构
2010-10-14 14:08:00 1426
转载 漫谈如何学习操作系统原理
<br />很老的一片文章,写的真是太好了。<br />学习操作系统一段时间了,很难找到全面专注的讲解底层的书籍或资料。这一段时间里,都是从微机原理、操作系统、汇编语言相关书籍里面找自己需要的东西,很是麻烦,就很纳闷为什么没有专门讲解这些内容的著作。曾经意识到INTEL官网去查看他的CPU文档,考虑到可能会讲解硬件细节,就作罢了。再者,无论在学习中还是现实生活中,都追求去掉表面浮华看本质。这篇文章对操作系统学习方式的见解,质朴而智慧。 <br /> <br /> <br />本人学习计算机技术至今,对于如何
2010-10-11 14:27:00 564
转载 认识BIOS
<br />计算机用户在使用计算机的过程中,都会接触到BIOS,它在计算机系统中起着非常重要的作用;而计算机底层开发人员,尤其是操作系统和虚拟机的开发人员更是要非常了解BIOS,本文将详细介绍一下BIOS这个家伙。<br /> BIOS,是计算机的基本输入输出系统(Basic Input System),它也是一个应用程序,只不过它是工作在操作系统层之下,硬件层之上的程序罢了,程序的代码被烧制集成在计算机主板上的一个ROM芯片上。它负责为操作系统提供最直接的硬件控制。<br /> 下面我来
2010-10-11 08:42:00 469
转载 计算机启动流程解析
<br /> 首先简要梳理一下计算机开机的流程:<br />1:开机加电,CPU工作在16位实模式下;<br />2:CPU按照实模式下的内存寻址方式从段地址(FFFF):偏移地址(0000)处开始执行指令;<br />3:FFFF0H处是BOIS的第一条指令,是一条跳转指令,指向BIOS真正的代码处;<br />4:BIOS代码从高字节到低字节依次是POST硬件自检、显卡初始化、CPU、内存、硬盘等标准硬件的初始化、加载引导扇区; <br />4.1:POST硬件自检主要包括检测关键设备如内存显卡等是否存
2010-10-11 08:41:00 448
转载 字符编码的故事(ASCII,ANSI,Unicode,Utf-8)
<br />一直对字符的各种编码方式懵懵懂懂,什么ANSI、UNICODE、UTF-8、GB2312、GBK、DBCS、UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们。Let's go!<br /> <br /> 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。 <br /> 再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多
2010-10-11 08:37:00 551
计算机及网络知识精华.rar
2010-05-22
C#编写飞信客户端接口规范和源码
2010-05-22
Visual C++ 技术内幕(第四版)
2009-08-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人