自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (6)
  • 收藏
  • 关注

原创 bios分析

qiuhan 2007.10.13 我们并没有实际去研读物理bios的代码,而是查看了bochs中的bios虚拟实现,主要出于如下考虑: 1 对于物理机的bios需要特殊的硬件进行调试,我们没有 2 对于不同的系统构架,bios很可能不同,我们偏重于功能性的研读bios,对于理解os的实现来说,   已经足够了;而且,这也会是理解物理bios的一个很好的起点。 另外,我

2012-02-14 15:20:07 2160

原创 链表的C语言实现之单链表的实现

一、单链表的建立  有了动态内存分配的基础,要实现链表就不难了。  所谓链表,就是用一组任意的存储单元存储线性表元素的一种数据结构。链表又分为单链表、双向链表和循环链表等。我们先讲讲单链表。所谓单链表,是指数据接点是单向排列的。一个单链表结点,其结构类型分为两部分:  1、数据域:用来存储本身数据  2、链域或称为指针域:用来存储下一个结点地址或者说指向其直接后继的

2011-12-22 11:14:48 580

原创 汇编中参数的传递和堆栈修正

在 Win32汇编中,我们经常要和 Api 打交道,另外也会常常使用自己编制的类似于 Api 的带参数的子程序,本文要讲述的是在子程序调用的过程中进行参数传递的概念和分析。一般在程序中,参数的传递是通过堆栈进行的,也就是说,调用者把要传递给子程序(或者被调用者)的参数压入堆栈,子程序在堆栈取出相应的值再使用,比如说,如果你要调用 SubRouting(Var1,Var2,Var3),编译后的最终代码可能是 push Var3push Var2push Var1call SubRoutingadd esp,1

2011-05-11 10:10:00 570

原创 安装visual studio 2003重启问题

<br /> <br /><br /> <br />Visual Studio.net 2003安装时,系统提示 <br />"安装程序检测到另一个程序要求计算机重新启动。必须重新启动计算机后才能安装 Visual Studio .NET 系统必备。系统重新启动后,您需要重新启动安装程序。单击“确定”重新启动。单击“取消”退出安装程序,以后再安装。" <br />系统重新启动后,问题依然 <br /> <br />打开注册表,找到下面主键并删除 <br />HKEY_LOCAL_MACHINE/SYSTEM

2011-05-09 17:29:00 1240

原创 汇编语言命令参数程序的编写

<br />一、 引言:<br />    如果大家用过TurboC2.0/3.0 or BorlandC3.X等编译器编写DOS应用程序的话,编写一个命令行参数形式的应用程序对大家来说是一件非常容易的事情,只要在主函main()中加几个参数就OK(int main(int argc,char *argv[],char *env[]){})。相对汇编语言来说编写一个命令行参数的程序就比较艰难,它要用到DOS的程序段前缀PSP(Program Segment Prefix)知识以及其他相关DOS知识。(本文只

2011-04-18 14:11:00 1381

转载 dos批处理命令详解

<br />一.简单批处理内部命令简介 <br />1.Echo 命令<br /> <br />打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。 <br />语法:<br /> <br />echo [{on│off}] [message] <br />Sample:@echo off / echo hello world <br />在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命<br />令到特定格式的文件中

2011-04-08 17:53:00 633

原创 echo命令的用法

<br /> <br />      ECHO命令是大家都熟悉的DOS批处理命令的一条子命令,但它的一些功能和用法也许你并不是全都知道,不信你瞧:<br />  1. 作为控制批处理命令在执行时是否显示命令行自身的开关<br />  格式:ECHO [ON|OFF]<br />  如果想关闭“ECHO OFF”命令行自身的显示,则需要在该命令行前加上“@”。<br />  2. 显示当前ECHO设置状态<br />  格式:ECHO<br />  3. 输出提示信息<br />  格式:ECHO信息内容<b

2011-04-08 17:44:00 923

原创 一个CMOS程式

wequal的一个CMOS程式: NAME   get_cmos_data_2002_9_5 .model   small .data head             DB   '*************   THE   FOLLOWING   IS   CMOS   DATA!   *************** ' len_head     equ   $-head data             db   '----   00   01   02   03   04   05   06   07

2011-04-07 22:56:00 629

原创 ACPI SMBUS Control

<br />/* Attached is the SMbus control sample code,<br />Customer may place this code into ACPI module and control CH7036 registers.<br />Change LVDS data format from 18bit to 24bit,<br />Write Reg03 to 04h (switch to Page 4)<br />Write Reg57[7:6] to 01<br

2010-11-25 18:22:00 2249

转载 漫谈IA32的系统管理模式(SMM)

好文经典收藏写在前面<br /> <br />这是我的BIOS启蒙文章第二篇了,上一篇我谈了谈什么是legacy USB,和大家聊了聊在USB键盘背后的那些不为人知的故事。大家可以去(http://blog.csdn.net/prostar/archive/2009/04/17/4088521.aspx)这里来看看这个文章。现在是第二篇了。今天我打算给大家讲讲什么是Ia32架构具备的系统管理模式(SMM),这是CPU四种运行模式中的一种,而且是最为神秘的运行模式。前段时间,IA32架构闹了个所谓的大BUG(

2010-10-24 14:03:00 1087

原创 X11介绍和/etc/X11/xorg.conf配置详解

X11R7<br />X11R7其实就是目前Ubuntu使用的X Server,它于2005年12月被释出,与之前的X11R6.9其实具有相同的源代码(Source Code)。不过X11R7的模块化设计,可提高开发时的容易度。X11R重要目录<br />与X11R7有关的软件,大多放在/usr及其子目录中。以下是较为重要的目录的说明:<br /> /usr/bin:存放X Server和不同的X Clients。<br /> /usr/include:开发X Client和图形所需的文件路径。<br />

2010-09-08 11:06:00 11475

原创 Linux 下串口简单编程

<br /> Linux 操作系统从一开始就对串行口提供了很好的支持,本文就 Linux 下的串行口通讯编程进行简单的介绍。<br />串口简介<br />串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术

2010-08-26 16:53:00 603

原创 Linux 下串口简单编程

<br /> Linux 操作系统从一开始就对串行口提供了很好的支持,本文就 Linux 下的串行口通讯编程进行简单的介绍。<br />串口简介<br />串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术

2010-08-26 16:50:00 517

原创 关于Linux操作系统睡眠和休眠

关于Linux操作系统睡眠和休眠2009-02-16 16:25<br /><br />  在作之前,先检查一下你的内核能支持哪些方式:<br /><br />  # cat /sys/power/state<br /><br />  standby disk<br /><br />  1. 睡眠 (sleep)<br /><br />  睡眠可能有两种方式:mem和standby,这两种方式都是suspend to RAM,简称STR,只是standby耗电更多一些,返回到正常工作方式时间更短一些而已。<

2010-08-26 16:41:00 4081

转载 The Big Real Mode

<br />【我所認知的BIOS】—>The Big Real Mode<br />LightSeed      <br />2009-6-23<br />前面两篇,我们对实模式和保护模式做了比较详细地探讨,说了那么多其实都是为这篇文章服务的。因为在BIOS POST的过程中经常要用到1M以上的内存。但是BIOS本身的code却又都是在实模式中运行的。当然我们可以进入保护模式去访问内存,然后再切会实模式。如此反复我们是可以做到的,但是这样必定是比较麻烦的。有没有一种模式,我们在实模式下就可以直接访问到4G的

2010-06-19 18:43:00 779

转载 关于A20 Gate

<br /> 本来想直接写一篇关于保护模式的文章,因为有一位读者不断地问我这个问题,随着问题的深入,在评论上回答这个问题实在是太困难了,动起笔来,发现涉及的事情太多,免不了又是长篇大论惹人烦,而且要写很长时间,不知道我能不能把它写完,所以干脆把一些问题分离出来写,或许还可以坚持写出来。<br />    在许多PC的CMOS设置里,都有一项叫做“A20 Enable“的设置,不知道大家是否就此设置困惑过,这个A20是什么呢?<br />    说A20则不得不说PC机的内存,我尽量用简短的语言说明白PC机内

2010-06-19 18:36:00 982

转载 Gate A20与保护模式

<br />Gate A20与保护模式 大家都知道,8088/8086只有20位地址线,按理它的寻址空间是2^20,应该是1024KB,但PC机的寻址结构是segment:offset,segment和offset都是16位的寄存器,最大值是0ffffh,换算成物理地址的计算方法是把segment左移4位,再加上offset,所以segment:offset所能表达的寻址空间最大应为0ffff0h + 0ffffh = 10ffefh(前面的0ffffh是segment=0ffffh并向左移动4位的结果,后

2010-06-19 18:27:00 715

原创 实模式下,cpu真的只能寻址1M的地址空间吗?

<br /> <br /> <br />问题:对于X86:实模式下,打开A20地址线,难道也不能寻址4G的地址空间吗?是不是只有进入保护模式,打开A20地址线才能寻址4G的地址空间呢? <br /><br />对于其他CPU:对于目前其他类型的CPU,比如POWER   PC,ARM这些CPU可能已经没有A20地址线问题了,当他们在实模式下,可以摆脱1M地址空间的限制吗?<br /> <br />回答:<br /> 实模式下也是可以访问1M以上的内存空间的。在CPU内部有个段描述符高速缓寄存器,寄存器内容分

2010-06-19 18:26:00 2570

转载 實模式&保護模式切换实例

<br /><br />【我所認知的BIOS】—>實模式&保護模式切换实例<br />LightSeed      <br />2009-6-23      <br />上一章從基礎概念上我談了談我的理解。素不知“紙上得來終覺淺,絕知此事要躬行”呀!不多說二話,我們來詳細剖析實模式和保護模式的相互切換。(我儘量解釋清楚每一句話,以下舉的例子是楊季文老師書里一個最簡單的例子)<br />Let us go!<br />1、這個例子中code做的事<br />下麵我們看到的這個code做了這樣的操作:<br /

2010-06-19 18:24:00 1320

转载 實模式&保護模式

<br />【我所認知的BIOS】—>實模式&保護模式<br />LightSeed      <br />2009-6-17      <br />回顧一下blog里的第一篇文章【我所認知的BIOS】—>ADU.EXE,<br />http://blog.csdn.net/lightseed/archive/2009/05/26/4216113.aspx<br />在這篇文章我有提到關於Memory的訪問,在ADU中有關於“real mode”和“Flat mode”兩種形式去訪問內存。那麼這張起我就來談

2010-06-19 18:20:00 1114

转载 虛擬存儲機制

<br />虛擬存儲機制<br />By LightSeed<br />2009-8-1   <br />在文章的前面我想说,如果您对全局描述符,段选择子,保护模式等,一点概念都没有的话,那么我不建议继续往下看。因为这篇文章是建立在那些基础之上的。这样的话,我建议您看看关于保护模式的资料再继续。比如说:【我所認知的BIOS】—>實模式&保護模式有比较简单地介绍。<br /> <br />1、分段管理VS分页管理<br />X86上的内存管理机制我们可以分为两部分,分页管理机制和分段管理机制。其实他们都是虚拟

2010-06-19 18:17:00 625

转载 堆和栈的区别(转过无数次的文章)

<br />堆和栈的区别(转过无数次的文章) 收藏 <br />堆和栈的区别(转过无数次的文章)<br /> 一、预备知识—程序的内存分配  <br />  一个由C/C++编译的程序占用的内存分为以下几个部分  <br />  1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其  <br />  操作方式类似于数据结构中的栈。  <br />  2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回  <br /> 

2010-06-19 18:12:00 354

转载 自己动手启动计算机

己動手啟動計算機LightSeed2009-11-5我当时在做《汇编语言》王爽(第一版)著的那本书的最后一题“课程设计二”的时候有关于启动OS的操作,想想这个题目对理解我们BIOS到OS的控制权的交付有比较形象的理解,故在这里也和大家探讨一下。1、软盘的引导扇区格式及原理1.1引导扇区的格式(笔者:以下这段是参考http://hi.baidu.com/rabbit5455/blog

2010-03-05 16:37:00 542

转载 条件汇编

注:本文来自benny blog:http://blog.csdn.net/benny5609/archive/2008/06/12/2541246.aspx     条件汇编是汇编器在汇编阶段,依据所设定的条件,使汇编器汇编某一段程序,或不汇编某一段程序。一般而言,条件汇编常配合宏使用,使得撰写汇编语言源文件能有初步的结构化 (注一 )。底下小木偶使用条件汇编与宏配合而写成的一个简单程序

2010-03-05 14:38:00 926

The C Programming language

The C Programming language

2011-12-22

c语言函数大全 语法彩色版

c语言函数大全 着色版c语言函数大全 语法彩色版c语言函数大全 语法彩色版c语言函数大全 语法彩色版c语言函数大全 语法彩色版c语言函数大全 语法彩色版c语言函数大全 语法彩色版c语言函数大全 语法彩色版c语言函数大全 语法彩色版c语言函数大全 语法彩色版c语言函数大全 语法彩色版c语言函数大全 语法彩色版c语言函数大全 语法彩色版c语言函数大全 语法彩色版c语言函数大全 语法彩色版c语言函数大全 语法彩色版

2011-12-21

ITE8712 spec

ITE8712 spec 芯片规格

2007-12-07

计算机主板winbond83195-118 时钟芯片寄存器默认值读取程序

计算机主板winbond83195-118 时钟芯片寄存器默认值读取程序

2007-08-30

计算机主板ITE83195-118 时钟芯片寄存器默认值读取程序

计算机主板ITE83195-118 时钟芯片寄存器默认值读取程序

2007-08-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除