![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
一个64位操作系统的设计与实现
Haha@25
300字以内
展开
-
Loader引导加载程序
Q1:内核程序起始地址为什么位于物理地址0x100000(1MB)处:A:因为在1MB以下的物理地址并不全是可用内存地址空间,有内存空间,非内存空间以及地址空洞;所以为了避开这些纷繁复杂的内存地址,选择了从平坦的1MB地址开始.一,1,开启1MB以上物理地址寻址功能,同时开启实模式下的4GB的寻址功能;2,加载kernal.bin进入内存1MB开始的位置处;现将kernal.bin一簇一簇...原创 2020-02-24 17:32:53 · 619 阅读 · 0 评论 -
从Boot跳转到loader程序
将上一节的boot.asm程序的Label_File_Loaded:函数改写Label_File_Loaded: //完成了向Loader引导加载程序移交执行权的工作 jmp BaseOfLoader:OffsetOfLoader在编写一个loader.asm程序org 10000h mov ax, cs mov ds, ax mov es, ax mov ax, 0x00...原创 2020-02-23 20:16:35 · 419 阅读 · 0 评论 -
Boot.asm完整版
boot程序要完成的功能1,将软盘格式化为FAT12文件系统2,在FAT12文件系统的软盘中找到loader.bin3,加载loader.bin到内存特定的位置上用nasm编译器将boot.asm 编译为对应的boot.bin文件nasm boot.asm -o boot.bin重新将boot.bin写入软盘 dd if=boot.bin of=/home/hjw/Download...原创 2020-02-23 16:59:48 · 1831 阅读 · 0 评论 -
Ubuntu18.04 Bochs环境配置
UBUNTU18.04 Bochs环境配置Boch下载安装nasm进入到bochs文件的目录./config配置试着去make install再次尝试make install再次make install 成功啦!试着启动Bochs加粗样式Boch下载地址:https://sourceforge.net/projects/bochs/files/bochs/2.6.9/我安装的是 .tar....原创 2019-05-03 02:21:39 · 3134 阅读 · 0 评论 -
Boot程序初探
一,首先编写boot引导程序的汇编代码: org 0x7c00 BaseOfStack equ 0x7c00Label_Start: mov ax, cs mov ds, ax mov es, ax mov ss, ax mov sp, BaseOfStack;======= clear screen mov ax, 0600h mov bx, 0700h m...原创 2019-05-06 01:08:49 · 2239 阅读 · 0 评论