计算机基础知识二

转载 2015年11月18日 22:34:11

1. 进入32位模式并导入C语言

制作真正的IPL(启动程序加载器)-用他来装载程序

BIOS 0x13号函数(INT 0x13)读写磁盘。将硬盘内容装入内存。

JC error jump if carry,如果有进位标志则跳转到error

2. 软盘就像一棵树的截面,他有上下两面,向上的面用磁头0读写,下面用磁头1读写。

树有很多年轮,软盘也类似,软件年轮之间的部分叫柱面(cylinder),上下各有80个柱面,最外是柱面0,再是柱面1,。。。一直到最里面的柱面79,下面也是一样。每个柱面又分18个扇区sector1-18号)。一个扇区可存储512字节。

3. 综上所述,1个软盘有2个磁头,(一个磁面有)80个柱面,(一个柱面有)18个扇区,一个扇区有512个字节。所以,一个软盘的容量是:

  2*80*18*512 = 1474560 byte = 1440 kB

含有IPL的启动区位于:C0-H0-S1 Cylinder,magnetic Head,Sector

  柱面0,磁头0,扇区  1,下一个扇区是:C0-H0-S2

4. MOV AL,[ES:BX] ; ES*16+BX -> AL 

5. 启动区:0x8000-0x81ff。???文中说此地址留给启动区,启动区不是7c00-7dff

6. Makefile中定义简单变量: TOOLPATH = ../z_tools/

MAKE     = $(TOOLPATH)make.exe -r   。引用方式: $(MAKE )

JNC jump if not carry

JAEjump if above or equal. 

JBE:  jump if  below or  equal. 

JBjump if  below 

harib00d :将磁盘C0-H0-S2 - C0-H0-S18512*17=8704字节读入内存。

7. 启动区512字节装载到内存地址0x7C00,他的作用是把操作系统装载到内存中。

最开始我们讲要编写一个一通电就能运行的程序。启动盘的第一个扇区是启动区(最后两字节必须为55AA),把程序代码保存到这个扇区即可,这样就是一个通电就能运行的程序。这个程序最开始我们只是在屏幕上显示一个字符串信息“Helloworld!”,最终改造为一个IPL,即把其他程序装载进入内存的程序(从磁盘读取操作系统的程序)。先写个最简单的操作系统,即显示一个字符串即可,再慢慢添加新的功能。

8. 最开始用二进制编器手动输入程序,显示一个字符串;再用汇编慢慢改造一样的效果。

(第一次改造只用:DBSETB) (第二次改造:加入DWDD,)(第三次改造:加入ORGJMPMOV等),慢慢熟悉汇编语言的同时,把程序写的简单易懂。

然后删去最后的字节,只保留512字节,成为一个启动区。再把启动区改造为可装入其他程序。ipl10.bin 读入10个柱面放入内存。

9. 第三天,完成了启动区的制作,下一步开始编写操作系统代码。

最简单的操作系统haribote.nas

Fin: 

   HLT

   Jmp fin 

我们需要将操作系统本身的内容写到名为haribote.sys文件中,再把他保存到磁盘映像里,然后我们从启动区执行这个haribote.sys就行了。

操作系统软盘地址从0x4200开始,磁盘内容装载到0x8000地址,相加即为内存地址 0xc200

需要在haribote.nas头加入org 0xc200,在启动区最后添加代码jmp 0xc200。如此在装载完os后,即会跳到地址0xc200执行操作系统程序。

10. CPU32位模式不能调用BIOS功能。

VRAM:Video RAM,显卡内存,他的地址对应着屏幕上的像素。

10. C中调用汇编

2013-12-23

相关文章推荐

[全国计算机二级]基础知识汇总(二)

2.1 C语言的构成 2.1.1 C语言的构成 (1)源程序由函数构成,每个函数完成相对独立的功能。 (2)每个源程序中必须有且只能有一个主函数,可以放在任何位置,但程序总是从主函数 开始...

计算机网络基础知识整理(二)

4 OSI参考模型OSI参考模型(OSI/RM)的全称是开放系统互联参考模型,它是由估计标准化组织提出的一个网络系统互联模型。在OSI参考模型中,每一层都为其上一层提供服务,并未其上一层提供一个访问接...

计算机基础知识——操作系统(二):进程

我们运行一个程序,操作系统就会帮我们创建一个进程来让CPU执行这个程序。 也可以这样理解,运行一个程序,操作系统会在开辟一片内存空间,CPU在这片内存空间执行此程序,这片内存空间其他的普通进程不能访...

软考之路(二)——计算机基础知识总结

引言:              计算机基础知识就是计算机的硬件和软件知识。硬件为软件提供环境,软件是计算机的灵魂。 概述:               本次总结包括俩个知识点,CPU的组成和指令系...

计算机基础知识

  • 2015年11月25日 14:52
  • 9.67MB
  • 下载

计算机网络基础知识

  • 2015年08月09日 16:09
  • 66KB
  • 下载

计算机10大基础知识点(一)

1.析构函数析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用n...

计算机的基础知识

  • 2015年03月12日 15:30
  • 34KB
  • 下载

计算机基础知识.ppt

  • 2015年02月12日 15:39
  • 1.38MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:计算机基础知识二
举报原因:
原因补充:

(最多只允许输入30个字)