ข้ามไปที่เนื้อหาหลัก

โพสต์

กำลังแสดงโพสต์จาก พฤศจิกายน, 2018

บันทึกทดลองสร้าง OS

อันแรกต้องติดตั้ง NASM sudo apt-get install nasm loader.asm ========== global loader extern dmain MODULEALIGN equ 1<<0 MEMINFO equ 1<<1 FLAGS equ MODULEALIGN | MEMINFO MAGIC equ 0x1BADB002 CHECKSUM equ -(MAGIC + FLAGS) section .text align 4 MultiBootHeader: dd MAGIC dd FLAGS dd CHECKSUM STACKSIZE equ 0x4000 loader: mov esp, stack+STACKSIZE push eax push ebx call dmain cli hang: hlt jmp hang section .bss align 4 stack: resb STACKSIZE =============== จะนั้นใช้เทอร์มินัล มาโพรเดอร์ที่เก็บไฟล์ nasm -f elf -o loader.o loader.asm สร้างไฟล์ kernel.c โค้ด ============== void dmain(void*mbd,unsigned int magic) {     if(magic != 0x2BADB002)     {         clearscreen();         print("Error: Invalid magic number!",0x04);     }     else     {         clearscreen();         print("Hello World!",0x07);//04,07คือรหัสสีบนDOS     } } void print(char*message,int color) {     char* mem = (char*)(0xb8000);     while(*message != 0)     {         *mem = *message;         mem+