crt0.s
来自「一个微型操作系统源码」· S 代码 · 共 73 行
S
73 行
%macro EXPORT 1%ifdef UNDERBARS GLOBAL %1 %1:%else GLOBAL _%1 _%1:%endif%endmacro%macro IMPORT 1%ifdef UNDERBARS EXTERN _%1 ; use this for GCC with DOS (DJGPP; COFF) %define %1 _%1%else EXTERN %1 ; use this for GCC with Linux (ELF)%endif%endmacro SECTION .text EXPORT start jmp boot_entry ALIGN 4 EXTERN _edata EXTERN _endboot_hdr: dd 0x1BADB002 dd 0x00010000 dd 0-0x1BADB002-0x00010000 dd boot_hdr dd _start dd _bss_start dd _end dd boot_entryboot_entry: ; ebx holds a pointer to ; the multiboot info block mov esp,boot_stack push dword 0 popf; zero the kernel BSSIMPORT _bss_startIMPORT _end xor eax,eax mov edi,_bss_start mov ecx,_end sub ecx,edi shr ecx,2 rep stosd push ebx ; save parameter for main IMPORT main call main jmp short $ ; Hang SECTION .bss ALIGNB 16%IFDEF DEBUG RESB 4096%ELSE RESB 1024%ENDIFboot_stack:
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?