⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 boot.s.texi

📁 i386的bootloader源码grub
💻 TEXI
字号:
/* @r{boot.S - bootstrap the kernel} *//* @r{Copyright (C) 1999, 2001  Free Software Foundation, Inc.   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2 of the License, or   (at your option) any later version.    This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.    You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.} */#define ASM     1#include <multiboot.h>                .text        .globl  start, _startstart:_start:        jmp     multiboot_entry        /* @r{Align 32 bits boundary.} */        .align  4                /* @r{Multiboot header.} */multiboot_header:        /* @r{magic} */        .long   MULTIBOOT_HEADER_MAGIC        /* @r{flags} */        .long   MULTIBOOT_HEADER_FLAGS        /* @r{checksum} */        .long   -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)#ifndef __ELF__        /* @r{header_addr} */        .long   multiboot_header        /* @r{load_addr} */        .long   _start        /* @r{load_end_addr} */        .long   _edata        /* @r{bss_end_addr} */        .long   _end        /* @r{entry_addr} */        .long   multiboot_entry#endif /* @r{! __ELF__} */multiboot_entry:        /* @r{Initialize the stack pointer.} */        movl    $(stack + STACK_SIZE), %esp        /* @r{Reset EFLAGS.} */        pushl   $0        popf        /* @r{Push the pointer to the Multiboot information structure.} */        pushl   %ebx        /* @r{Push the magic value.} */        pushl   %eax        /* @r{Now enter the C main function...} */        call    EXT_C(cmain)        /* @r{Halt.} */        pushl   $halt_message        call    EXT_C(printf)        loop:   hlt        jmp     loophalt_message:        .asciz  "Halted."        /* @r{Our stack area.} */        .comm   stack, STACK_SIZE        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -