您的位置:首页 > 其它

boot.s进入保护模式

2012-10-01 14:16 211 查看
;kernel.s

start:

mov ah,9

mov bh,0

mov al,'o'

mov bl,0x1e

mov cx,10

int 0x10

jmp start

;boot.s

[BITS 16]

jmp start

start:

cli

mov al,1

mov ah,2

mov bx,0x1000

mov es,bx

mov bx,0

mov cx,0x0002

mov dx,0x0

int 0x13

jnc ok_load

die:

jmp die

ok_load:

mov ax,0x1000

mov ds,ax

mov si,0

mov di,0

mov es,di

mov cx,17

cpy:

movsb

dec cx

jcxz cpy_done

jmp cpy

cpy_done:

mov dx,0

mov ds,dx

lgdt [0x7c00+gdt_48]

mov edx,cr0

or edx,1

mov cr0,edx

jmp dword 0x0008:0

gdt_48:

DW 16

DW gdt+0x7c00,0

gdt:

DW 0,0,0,0

DW 0Xffff

DW 0X0000

DW 0X9e00

DW 0X0000

TIMES 510-($-$$) DB 0

DW 0XAA55

/*a.bxrc*/

floppya:1_44=c.img,status=inserted

boot:floppy

/*makefile*/

all:

nasm -o boot.bin boot.s

nasm -o kernel.bin kernel.s

dd if=/dev/zero of=c.img count=1

dd if=boot.bin of=c.img count=1

cat kernel.bin >> c.img

bochs -q -f a.bxrc

clean:

rm -rf boot.bin
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: