博客首页
注册
建议与交流
排行榜
加入友情链接
推荐
投诉
搜索:
帮助
小宝--读书笔记
精修内功!
zieckey.cublog.cn
管理博客
发表文章
留言
收藏夹
· 相关BLOG
· 好友BLOG
· 常去的地方
博客圈
音乐
相册
· 同学相片
· 西藏之行
· 我的大学
文章
· OS Linux
}
· Command Usage
· Install && Usage
· Soft Install && Usage
· Kernel
· Solaris
· Other
· C/C++
}
· Linux C/C++
· QT Embedded
· Standard C/C++
· Win32 C/C++
· E680
· Java
}
· J2ME
· J2SE
· J2EE
· Software Engineering
}
· Class Design Principle
· Arithmetic Data Structure
· Design Patterns
· Database
· Other
}
· Python
· Windows
· Networks
· Assemble
· Video && Image
· Hardware Design
· Other
· 人生如梦
}
· 修身养性
· 生活
· 音乐电影
· 职业生涯
· 搞笑
· 其它
首页
关于作者
思路决定出路,态度决定高度!
||
<<
>>
||
我的分类
文章列表 - Kernel
80x86 CPU's working mode
<P>By zieckey (<A href="http://zieckey.cublog.cn">http://zieckey.cublog.cn</A>) </P> <P>From "PC assembly language" </P> <P>1. Real Mode In real mode, memory is limited to only one megabyte (220 bytes). Valid address range from (in hex) 00000 to FFFFF. These addresses require a 20- bit number. Obviously, a 20-bit number will not fit into any of the 8086’s 16-bit registers. Intel solved this problem, by using two 16-bit values to determine an address. The first 16-bit value is called the selec……
查看全文
发表于:2007-10-09 ┆
阅读(666)
┆
评论(0)
80x86保护模式下的基本概念
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">在<SPAN lang=EN-US>IA32</SPAN>下,<SPAN lang=EN-US>CPU</SPAN>有两种工作模式:实模式和保护模式。在实模式下,段寄存器含有段值,为访问存储器形成物理地址时,处理器引用相应的某个段寄存器并将其值乘以<SPAN lang=EN-US>16</SPAN>,形成<SPAN lang=EN-US>20</SPAN>位的段基地址。计算公式如下:<SPAN lang=EN-US><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></SPAN></B></P><br /> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><SPAN style="mso-tab-count: 2"> </SPAN></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">物理地址<SPAN lang=EN-US> = </SPAN>段值<SPAN lang=EN-US>*16 + </SPAN>偏移<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></B></P><br /> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">其中段值和偏移都是<SPAN lang=EN-US>16</SPAN>位的,这样通过“段:偏移”的方式达到了<SPAN lang=EN-US>1MB</SPAN>的寻址能力。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></B></P><br /> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">在保护模式下,寄存器是<SPAN lang=EN-US>32</SPAN>位的,但是为了兼容性,地址仍然用“段:偏移”的方式来表示,只不过这时的保护模式下的“段”的概念已经发生了根本的改变,虽然段值仍然由原来的<SPAN lang=EN-US>cs</SPAN>、<SPAN lang=EN-US>ds</SPAN>等寄存器表示,但是此时它仅仅是一个索引,叫做选择子,指向一个数据结构(叫做<SPAN lang=EN-US>GDT</SPAN>,<SPAN lang=EN-US>Global Descriptor Table</SPAN>全局描述符表或者<SPAN lang=EN-US>LDT</SPAN>,<SPAN lang=EN-US>Local Descriptor Table</SPAN>局部描述符表)的一个表项(叫做<SPAN lang=EN-US>Descriptor</SPAN>描述符)。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></B></P><br /> <DIV></DIV>
查看全文
发表于:2007-10-08 ┆
阅读(1271)
┆
评论(4)
Virtual PC 中安装DOS的共享文件夹模块
<DIV>By zieckey (<A href="http://zieckey.cublog.cn">http://zieckey.cublog.cn</A>)</DIV> <DIV> </DIV> <DIV>按照上文<A href="http://blog.chinaunix.net/u/16292/showart_396370.html">http://blog.chinaunix.net/u/16292/showart_396370.html</A> 中的方法安装完dos后,</DIV> <DIV>如果还不能使用共享文件夹,那么请按照下面方法:</DIV> <DIV>(1) 在虚拟机窗口,点菜单Action ---- Install or Update Virtual Machine Additions<BR> 这将把VMAdditions013040.iso (在MV……
查看全文
发表于:2007-10-07 ┆
阅读(3519)
┆
评论(1)
Virtual PC 中安 装ms dos 6.22
<DIV> <P>在《自己动手写操作系统》中作者的平台是virtual pc 5.0,他使用这个虚拟机来作为开发平台,但是很不幸的是VirtualPC在推出5.2版本后就被Mirosoft给收购了,然后就发挥微软的霸道,让vpc只支持windows了.连dos都支持不好了.</P> <P>注:本文曾经经过精心的排版后准备发布,结果csdn没有提交上去,郁闷啊,这次稍微排了一下版,排的不好大家原谅!</P> <P>注2:本人折腾vpc和vmware长达一天才整理出这篇文章,鉴于网上没有相关的资源,特意写出来供大家参考,转载时请保留本人的信息及网址,谢谢!</P> <P>言归正传,我今天来就把自己研究vpc的……
查看全文
发表于:2007-10-07 ┆
阅读(2972)
┆
评论(2)
认识保护模式——从实模式到保护模式的跳转编程实例
摘要:本文对于渊所著《自己动手写操作系统》一书中P38面的程序进行了更加详细的注释,并且给出了具体的编译和在bochs上运行的方法。 <br /> <DIV></DIV><br /> <DIV></DIV>
查看全文
发表于:2007-10-07 ┆
阅读(987)
┆
评论(1)
什么是实模式、保护模式和虚拟8086方式
<DIV> <DIV class=textbox-title> <H4>什么是实模式、保护模式和虚拟8086方式</H4> <DIV class=textbox-label>[ 2007-3-8 15:53:35 | By: eein ]</DIV></DIV> <DIV class=textbox-content> <SCRIPT type=text/javascript><!-- google_ad_client = "pub-9334546667592326"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_type = "text_image"; google_ad_channel ="2300772098"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "009900"; ……
查看全文
发表于:2007-05-17 ┆
阅读(3426)
┆
评论(1)
自己动手写操作系统----"Hello, OS world!"
<P>自己动手写操作系统--"Hello, OS world!"</P> <P> 作者:zieckey(<A href="mailto:zieckey@yahoo.com.cn">zieckey@yahoo.com.cn</A>)</P> <P>1、开发环境与工具</P> <P>开发环境:winxp+sp2<BR>必须安装Bochs-2.3,nasm,UltraEdit.<BR>下载nasm后,添加nasm所在目录到到path目录,建议直接将nasm放到windows或system32目录,方便从命令行调用.<BR>下载地址:<A href="http://sourceforge.net/projects/nasm">http://sourceforge.net/projects/nasm</A></P> <P>2、准备</P> <P>下载并解压缩bochs后……
查看全文
发表于:2007-05-15 ┆
阅读(1576)
┆
评论(0)