摘要:
学习如何在32-bit模式下不借助BIOS的0x10号中断打印字符串 关键字:32-bit保护模式; VGA; 视频存储区域 目标: 学会在32-bit保护模式下打印字符串 理论基础 32-bit保护模式 32-bit保护模式设计的内容非常多,十篇博客也写不完,因此这里只对32-bit保护模式的要点 阅读全文
摘要:
本节将学习汇编函数和控制结构,其中穿插着字符串打印、数字转字符知识. 关键字: 控制结构; 函数调用; 字符串 目标: 学习使用汇编语言编写控制结构、函数 对于本节的控制结构和函数,读者应该在本系列博客的第一篇原文介绍+环境搭建中,提到的《汇编语言(第三版)》一书中学习到过,因此本节的目地也是复习相 阅读全文
摘要:
本节将学习16bit模式的段结构 关键字:段 目标:学习如何在16bit模式下寻址 如果你对段已经很熟悉了,那么你可以跳过本节. 理论基础 在从0创建一个OS (四) 电脑存储的组织形式一节中我们利用org完成了对booot sector的全局基址定义,那是我们第一次在本系列博客中接触到段的概念. 阅读全文
摘要:
本节将学习如何从硬盘中读取数据 关键字: 硬盘; 柱面(cylinder);磁头(head);扇区(sector); 进位(carry bit) 目标:利用boot sector从硬盘中读取数据(这一步的目地是为从硬盘中启动操作系统kernel做准备) 理论基础 本节的内容是自本系列博客开始以来最复 阅读全文
摘要:
本节将学习boot sector以及其所在内存的相关知识 学习完本节后,要明确一个概念: 代码的存储区域和运行区域有可能不同 关键字:memory offsets; pointers 目标:学习电脑存储的组织形式 在进行学习之前,先看一下这幅图 这幅图为16bit实模式下电脑启动后的内存存储结构,读 阅读全文
摘要:
本节将学习16bit模式下,汇编语言中的栈的基本操作 关键字:stack 目标:学习如何使用栈 理论基础 在我们学习其它高级语言,如C++,Java时,肯定会接触到栈这个概念,在汇编中栈的基础操作只有2种,入栈和出栈. 在16bit模式下 栈底由16bit寄存器BP负责记录 栈顶由16bit寄存器S 阅读全文
摘要:
OS教程——从0创建一个OS 本来这个系列的博客准备留在CSDN的,可是今天忽然想起这个系列还没更新完,之后又会一直在博客园写东西,所以就批量导入过来了,大家可能会看到图片带csdn的水印,影响不大,之后更新的该系列文章中的图片就不会带CSDN的水印了。 本文为os-tutorial—How to 阅读全文
摘要:
本节将学习如何创建一个能够boot的文件 关键字: assembler; BIOS 目标: 创建一个文件,使BIOS能够将其当作能够boot的硬盘 理论基础 当PC启动时,BIOS并不知道如何启动操作系统,所以BIOS将启动操作系统的任务委派给boot sector,因此boot sector必须放 阅读全文
摘要:
本节将学习如何向boot sector中添加打印信息功能 关键字: interrupts, CPU registers 目标:向我们在上一节中创建的"裸骨架"添加功能——打印信息 上一节的源码部分有一个死循环,用以控制程序始终运行在boot sector中,本节将向上一节的源码中添加打印信息到屏幕功 阅读全文