关闭

计算机基础知识二

246人阅读 评论(0) 收藏 举报
分类:

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

0
0
查看评论

计算机基础知识面试

我整理和收集了计算机面试常问的基础知识集锦。看这篇日志进行复习,肯定会事半功倍的。后面会一一填充的。 1.  c++的cast函数及他们的作用。      c++共有4种cast函数。其中包括dynamic_cast, static_cast, inter...
  • china1000
  • china1000
  • 2013-10-19 00:34
  • 2221

计算机基础知识学习总结

1、计算机的组成部分:  输入单元:包括键盘、鼠标、卡片阅读器、扫描仪、触控屏幕等等一堆; 主机部分:被主机机壳保护住了,含有CPU与主存储器 输出单元:如屏幕、打印机等 2、CPU的工作主要在于管理与运算,在CPU内主要分为两个主要的单元, 分别是:算数逻辑单元与控制单元。 ...
  • sunshine_silence
  • sunshine_silence
  • 2016-11-14 17:20
  • 185

Java_计算机基础知识

Java_计算机基础知识 01计算机基础知识 计算机 计算机硬件 计算机软件 软件开发 计算机语言 人机交互方式 键盘功能键及快捷键介绍 常用的DOS命令 02 Java语言概述 03 JDK的下载,安装 04 HelloWorld案例  ...
  • qq_28511837
  • qq_28511837
  • 2015-05-31 02:15
  • 531

计算机基础知识的学习总结

关于域名 对一些静态网页,按F12可以对其进行编辑(某些浏览器行不通,因为不带编辑工具) 开发静态网站,需学习HTML,css以及JavaScript 开发动态网站需要学习Java,python等 打开cmd,输入ping www.baidu.com 或者www.google.com 或者 ww...
  • shawnL1
  • shawnL1
  • 2017-10-17 12:43
  • 246

计算机组件及操作系统基础知识

一、计算机组件简介        现代计算机设备主要有五个部分组成:运算器、控制器、存储器、输入设备、输出设备。CPU是中央处理器,是控制和运算器,是一台计算机的运算核心和控制核心。存储器的主要功能是存储程序和各种。输入输出设备我们一般统称I/O,用于连...
  • sinat_31828101
  • sinat_31828101
  • 2016-01-11 22:58
  • 4229

计算机组成原理基本知识

寄存器: 在CPU中 地址总线: 传送地址,在内存中找到相应的地址。只能是从CPU--- 地址总线: 传送数据,从CPU到外面,或者从外面到CPU 举例:   mov   [BX],AX cpu先计算出物理地址,再通过地址总线(AB)找到内存中的地址(数电讲过...
  • leo_cuiyiming
  • leo_cuiyiming
  • 2015-11-03 18:14
  • 639

计算机硬件基础知识

计算机硬件系统不管我们有没有发现,在生活中我们处处都在使用着计算机。计算机给我们的生活带来了很多便利与效率,为了更好地使用计算机协助我们的工作学习我们需要对计算机有一个基础的了解。
  • a5548743
  • a5548743
  • 2017-05-20 14:19
  • 562

计算机基础知识理论试题

计算机基础知识试题一、选择题:本大题共30个小题,每小题1分,共30分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。1.冯·诺依曼计算机的基本原理是 [ ]A.程序外接 B.逻辑连接 C.数据内置 D.程序存储2.将高级语言程序设计语言源程序翻译成计算机可执...
  • zhouminghong
  • zhouminghong
  • 2008-03-09 17:25
  • 13780

计算机专业知识的学习方法,尤其是对基础掌握不多的初学者---个人学习心得

不得不承认的是,计算机
  • malina90
  • malina90
  • 2014-08-21 15:38
  • 729

2018年全国计算机等级考试二级公共基础知识总结汇总

2018年全国计算机等级考试二级公共基础知识总结汇总   1.1 算法    算法:是解题方案的准确而完整的描述。通俗地说,算法就是计算机解题的过程。算法不等于程序,也不等于计算方法,程序的编制不可能优于算法的设计。    (1)确定性,算法中每一步骤都必须有明确定义,不允许有...
  • qq_38669940
  • qq_38669940
  • 2018-01-23 08:37
  • 10
    个人资料
    • 访问:333577次
    • 积分:7178
    • 等级:
    • 排名:第3751名
    • 原创:322篇
    • 转载:549篇
    • 译文:1篇
    • 评论:75条
    最新评论